' git status'显示来自origin / master的错误提交计数

时间:2017-08-23 16:14:31

标签: git

在我的本地仓库中,我运行了以下commnands:

  • git checkout -b localBranch origin/master<创建了一个新的分支 跟踪远程分支' master'
  • git status<说最新的
  • git reset --hard HEAD~30<我正面临一些构建问题。这是构建不会失败的地方。其他一些开发人员已经检查了一些问题。我
  • git status<现在,这说明我落后于36 来自origin / master的提交

我原以为它会显示我落后于30次提交,但它表示36次提交。这是为什么?它是否也计算了合并分支的提交还是我在这里遗漏了其他东西?

注意:远程中有多个其他分支,很少有并入主分支。

2 个答案:

答案 0 :(得分:6)

通过运行git reset --hard HEAD~30,您还原为HEAD的第30个父级。但是,如果您使用分支,则HEADHEAD~30之间可能会有超过30次提交。

例如:

*   501fe6f (origin/master) Merge branch 'master' into HEAD
|\  
| * 24c80b0 foo
* | 69d4fad foo
|/  
* 93d4461 (HEAD -> master) foo
* 566ba14 foo
* 97f38e0 old

本地masterorigin/master~2,但它们之间有3次提交。 git status显示3 commits behind

答案 1 :(得分:2)

  

它是否计算来自合并分支的提交

当然可以。

可以从origin/master到达并且本地master无法访问的每次提交都是您无法提交的。

当您将origin/master合并到origin/master时,您将拥有其中的所有36个(包括在master中合并的分支)。