1

git:您的分支领先于 X 次提交

Git 分支在 origin/master 之前

我已经阅读了上面的两个问题,但它仍然没有回答我的问题。基本上我所做的是

  1. 在 GitHub 中创建一个新的存储库。
  2. 克隆并在我的本地 linux 机器中获取数据
  3. 进行更改,执行“git add”,然后执行“git commit -m”message”
  4. 最后做一个“git push https://github.com/username/sandbox.git ”。这工作正常,我使用建议的 https 协议而不是 SSH 协议(请注意,如果我只是“git push”它使用我尚未配置的 SSH 协议并且它失败了)
  5. 执行“git pull https://github.com/username/sandbox.git ”和“git fetch https://github.com/username/sandbox.git ”,所有这些都成功执行,说“已经是最新的” .
  6. 访问 github 网站,我可以看到更改。
  7. 现在运行“git status”,我现在看到以下内容

    在分支 master
    您的分支比 'origin/master' 领先 9 次提交。

这不是我所期望的。有人能告诉我为什么 git 认为我在 9 次提交之前领先于 origin/master。我已经推送和拉取数据,所以我希望我的本地仓库与远程主/原始仓库完美同步。

命令“git branch -av”显示如下

 * master                a99daf0 [ahead 9] submit
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master 81c7ec1 remove out files
4

2 回答 2

2

您领先于 origin/master,因为您已将自己的补丁提交到当前分支。

这可以通过以下方式显示:

$ git branch -av
master         0123abcd [ahead 9] Current commit comment

这样做的原因是您的本地分支是您自己的私有副本,实际上与 origin/master 不同。尽管您的本地分支机构master设置为跟踪origin/master. 所以 git 会告诉你两个分支之间的区别。

上面的命令将显示masteris 的位置,您将看到另一个条目origin/master

现在,如果您执行了您的push然后 afetch和 a,则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/浏览器看到的提交 ID 是否与来自git branch -av.

如果事实证明没有区别,您始终可以checkout创建一个新分支,切换到它,然后尝试删除旧的 master 分支git branch -d master,默认情况下它不会让您丢失补丁(因为它们还没有被合并并推送到上游主服务器)。

如果它不允许您删除分支。您可以要求 git 告诉您两个分支在哪个 commit-id 处共享相同的遗产(“它们都以相同的版本开始生活,那是什么时候?”)。

$ git merge-base origin/master master

这将显示两个分支共享的最后一次提交。从那时起,每个分支都以自己的方式分道扬镳。您可以获取该提交 ID,然后比较日志输出:

$ git log <commit-id>..<branch_name> --oneline
$ git log <commit-id>..<other_branch_name> --oneline

您现在可以看到它们是如何变得不同的。

于 2012-09-22T23:40:08.450 回答
0

作为一个新手,我真正需要的是“Mims H Wright”在我如何在 git 中找到原点/主人的位置,以及如何更改它所描述的答案?最终指向链接http://fvue.nl/wiki/Git%3a_Your_branch_is_ahead_of_the_tracked_remote_branch

基本上我必须做

git push origin master:master
于 2012-09-28T08:27:56.607 回答