“git status”实际检查上游回购是否与我的回购匹配?

时间:2016-09-10 15:01:10

标签: git github

看起来不像

git status

实际上检查我在github上的提交是否与我的本地状态完全同步。由于性能问题,这并不奇怪。我如何强制进行真正的检查?

5 个答案:

答案 0 :(得分:8)

您需要先进行抓取。这将更新您的本地仓库以匹配遥控器。

git fetch origin
git status

Fetch不会改变你的工作目录,就像git pull那样。

答案 1 :(得分:4)

简短回答:不,不是。

它将您当前的工作目录与本地HEAD提交进行比较。

来自文档:

  

显示索引文件与当前HEAD提交之间存在差异的路径,工作树与索引文件之间存在差异的路径,以及工作树中未由Git跟踪的路径(gitignore不会忽略这些路径) [5])。

https://git-scm.com/docs/git-status

答案 2 :(得分:3)

这不是git status背后的意图。您需要使用git diff代替:

git diff <your (master?) path> <remote path>

这出现了很多。例如:git diff between remote and local repo

答案 3 :(得分:2)

执行git fetch然后git status,以便检查您的(例如)带有origin / master的主机(两者都是您机器上的本地主机)将为您提供所需的内容 - 是上游远程存储库中状态的comapre master。

答案 4 :(得分:0)

  

如何强制进行真正的检查?

git fetch
  

由于性能问题,这并不令人惊讶。

实际上,即使是本地检查(在git fetch之后),有时也会过于昂贵:
&#34; git status&#34;可以花很多周期来计算关系 在当前分支与其上游之间,现在可以 禁用&#34; --no-ahead-behind&#34;选项。

commit f39a757commit 3ca1897commit fd9b544commit d7d1b49Jeff Hostetler (jeffhostetler)(2018年1月9日)。 (由Junio C Hamano -- gitster --合并于commit 4094e47,2018年3月8日)

  

status:为--[no-]ahead-behind添加status,为V2格式添加commit

     

教#34; git status&#34;和&#34; git commit&#34;接受&#34; --no-ahead-behind&#34;   和&#34; --ahead-behind&#34;请求快速或完全提前/后退的参数   报告。

     

&#34; --no-ahead-behind&#34;给出,现有的瓷器V2线   &#34; branch.ab +x -y&#34;被替换为新的&#34; branch.ab +? -?&#34;行。
  这表明分支及其上游是不相等   无需计算完整的前/后值

     

status:支持 - 长格式的前进后退

     

教授长(正常)状态格式以尊重--no-ahead-behind   参数并跳过可能昂贵的前进/后退计算   在分支和上游之间。

     

教#34; git status --short --branch&#34;尊重&#34; --no-ahead-behind&#34;   跳过计算分支的前/后计数的参数   它的上游只是报告&#39; [different]&#39;。