当repo同步时,git branch领先于origin / master

时间:2013-03-22 12:59:13

标签: git github

民间,

这是git中的一些东西,对我来说没有意义,这就是发生的事情

  • 我做了git status,我看到我在分支主人身上,没有提交,工作目录很干净。
  • 然后我做git pull origin master我拉了一堆代码,没问题。
  • 现在当我git status时,我看到一个新行你的分支在原点/主要提前1提交

我的本​​地仓库和远程仓库是完全同步的,你的分支在1个提交之前的原点/主数据之前是什么意思,这非常令人困惑。

4 个答案:

答案 0 :(得分:9)

我确实经历过你所看到的。 我无法在git-scm.com上找到正确的解释,但我相信它是这样的:

  1. 我从原点克隆一个回购,让我们说原点有主人,我现在在我的本地回购中掌握了
  2. now origin和你的repo引用了最后一次提交。此引用是主分支,并且引用在本地仓库和原始分支中相同
  3. 让我们说某人(除了你)将新提交推送到原始主人
  4. 你做git pull origin master
  5. 现在你做git status你会看到你的分支领先于原点/主人甚至很难你在你的本地仓库中没有新的提交而且没什么可推的! (在此示例中,自第1步(克隆)后,您没有在本地提交任何新内容)
  6. ==>当我在掌握时,我通过做git pull origin来解决这个问题。

    git pull origin master会将所有新提交从原始分支提取到本地分支。

    git pull origin也会重新设置对master的引用,等于在origin上引用master的提交!! (当没有发生这种情况时,git-bash会认为你提交了大量的提交!因为在提交树中,提交后有很多提交你的主引用!)

    这对你有什么影响吗?它对我有用:))

    另外,请随时通过确凿的证据/文件来支持我的努力:)

答案 1 :(得分:4)

您已在本地计算机上添加了一个尚未发送到远程服务器的提交。

如果您确信应该与远程存储库共享您的修改,则使用git push命令将提交发送到远程:

git push orgin master:master

答案 2 :(得分:1)

您正在考虑的是,您与远程存储库没有100%同步。您拥有远程存储库中的所有内容,是的。但是你的本地主人通过一次提交领先于原点/主人。

运行此命令,并向我们显示结果:

git log --all --graph --pretty=format:'%h %d %s'

我希望看到类似的内容:

* (master) Commit D
* (origin/master) Commit C
* Commit B
* Commit A

如果我正确地阅读你的帖子,你就是一个提交,因为你有D而远程分支是在C.你必须git push将提交D推送到远程存储库。那么你将100%同步。

答案 3 :(得分:0)

实际上,假设您的本地分支和远程分支同步。如果它说你的本地分支超过origin / master 1提交那么肯定是。我们都信任GIT。

用它来测试。

git checkout master // You move to master branch
cat .git/HEAD //shows the commit on which HEAD is pointing to

git checkout origin/master //you switch to origin master branch
cat .git/HEAD 

如果您看到本地主分支和远程主分支中的HEAD指向同一个提交,则两者都是同步的。

如果您的本地分支超过1次提交,只需将其(如果需要)推送到远程分支

git push origin master