git: Your branch is Ahead by X commits
Git branch is ahead of origin/master
我已阅读上述两个问题但仍未回答我的问题。基本上我做的是
现在运行“git status”,我现在看到以下
在分公司主人上 你的分支在9次提交之前领先于'origin / master'。
这不是我的预期。有人能告诉我为什么git认为我在9次提交中领先于origin / master。我已经推送和拉取数据,所以我希望我的本地仓库与远程主/原始仓库完美同步。
命令“git branch -av”显示以下内容
* master a99daf0 [ahead 9] submit
remotes/origin/HEAD -> origin/master
remotes/origin/master 81c7ec1 remove out files
答案 0 :(得分:2)
您已经领先于origin / master,因为您已将自己的补丁提交到当前分支。
可以显示:
$ git branch -av
master 0123abcd [ahead 9] Current commit comment
这样做的原因是您的本地分支是您自己的私有副本,并且实际上与origin / master不同。虽然您的本地分支master
已设置为跟踪origin/master
。所以git告诉你两个分支之间的区别。
上面的命令会显示master
所在的点,您会看到origin/master
的另一个条目。
现在,如果您执行了push
,然后是fetch
,然后是pull
,那么当前的提交ID(显示在git branch -av
)应该是相同的。如果不是,你需要弄清楚为什么不。也许:
$ git log origin/master..master # this can help explain ? OR...
$ git diff origin/master..master # this can help explain
检查你在github上通过HTTP /浏览器看到的commit-id与git branch -av
中哪个分支报告的commit-id相同。
如果事实证明没有区别,你可以checkout
一个新的分支,切换到它,然后尝试删除旧的主分支git branch -d master
默认情况下它不会让你有些补丁会丢失(因为它们尚未合并并推入上游主机)。
如果它不允许你删除分支。你可以要求git告诉你哪个commit-id两个分支共享相同的遗产(“它们都是以相同的版本开始生命,那是什么时候?”)。
$ git merge-base origin/master master
这将显示两个分支共享的最后一次提交。从那时起,每个分支都以自己的方式发散。您可以获取该commit-id,然后比较日志输出:
$ git log <commit-id>..<branch_name> --oneline
$ git log <commit-id>..<other_branch_name> --oneline
您现在可以看到它们如何变得不同。
答案 1 :(得分:0)
作为新手,我真正需要的是“Mims H Wright”在How can I find the location of origin/master in git, and how do I change it?描述的答案,最终指向链接http://fvue.nl/wiki/Git%3a_Your_branch_is_ahead_of_the_tracked_remote_branch。
基本上我必须这样做
git push origin master:master