不检出分支的情况下查询git状态

4

假设我有:

git fetch origin
git status "remotes/origin/master"

我不确定是否可以检查我没有检出的分支的状态,所以假设我像这样检出一个分支:

git branch foo "remotes/origin/master"
git checkout foo
git status

我的问题有两个方面:

  1. 我能否在不检查它的情况下获取分支的git状态?
  2. foo的git状态是否会是“不干净”的?我认为foo的git状态总是“干净的”并且“与远程保持最新”。

  1. git remote show origin是什么意思?
  2. 如果您有未跟踪的文件,那么是的。
- bishop
git remote show origin doesn't seem to include the same info as git status - Alexander Mills
1
确实,它没有——我不确定你需要哪些信息——但显然任何与工作树相关的状态信息都无法从远程获得。(这就是为什么要求本地工作树才能使用 git status 的原因。) - bishop
1个回答

6
可以不检出分支就获取其git状态吗?
不行,因为git状态显示的是工作树的状态。如果你没有检出一个分支,那么它就没有对应的工作树。
foo的git状态会变得“不干净”吗?
如果有未检入(也不在.gitignore中)的文件,则可能会这样。这些文件将在git checkout 后保留,并出现为任何分支中的新文件。

3
你也可以通过执行 "git diff <branchname>" 命令将工作副本与另一个分支进行比较,这可能接近于 OP 寻找的内容。 - Chris Middleton
git diff可能很有用 - 我想要做的是查看一个分支相对于远程集成分支的更改,这应该与remotes/origin/integration相同,如果我执行git fetch origin,对吗? - Alexander Mills
@AlexanderMills 然后您需要执行 git fetch 并针对 origin/integration 进行差异比较。 - Tim Biegeleisen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接