GitHub一直说"这个分支是X承诺提前,Y承诺落后"

Fer*_*cia 47 git github

我知道有几个类似的问题,但我认为我的情况有点不同.

假设有一个我想贡献的GitHub存储库.我将该存储库分叉到我的GitHub帐户,然后从我的PC中的帐户克隆分支.精细.

在处理问题之前,我首先要将fork与"原始"存储库同步.我转到我的帐户分支,单击New Pull请求,确保我选择我的作为基础并且原始主服务器作为主叉,我看到差异(人们在原始存储库中做的所有提交都不在我的) .然后我在我的fork上创建了pull请求,并在fork中合并了这些更改.我去我当地的仓库做了一个git pull,我把所有东西都同步了.精细.

问题来了,现在我的GitHub帐户中总是说'这个分支是X提交',其中'X'是我执行上述同步过程的次数.因此,每次我向原始存储库(而不是我的fork)执行pull请求时,都会显示我正在提交我的代码以及 X更多提交,这是我在fork上与原始存储库同步的合并.

当然,我不想将这些更改推送到原始存储库,因为它们已经有了这些更改,所以我不明白为什么GitHub一直告诉我我有更改要提交.

我认为这是必须在我的GitHub帐户上解决的问题,因为在我的本地存储库中没有任何更改或问题,实际上我甚至删除了它并再次重新克隆.

你有什么想法?

Sco*_*don 66

正如您所猜测的,这些额外提交可能是您创建的Pull请求的合并提交.

将来,有一种更简单的方法可以将fork与原始存储库同步.在您的本地仓库中,在初始克隆之后执行:

git remote add upstream https://github.com/upstream/repo.git
Run Code Online (Sandbox Code Playgroud)

然后,只要您想从上游同步更改,请执行以下操作:

git pull --rebase upstream master
git push --force-with-lease origin master
Run Code Online (Sandbox Code Playgroud)

(如果您有未合并到上游仓库的提交,则只有--rebase--force-with-lease选项才有必要.)

强制警告:由于rebase重写了历史记录,这对于在该分支机构工作的任何人来说都是危险/破坏性的.确保您清楚地告知您与您合作的任何人所做的事情.由于这是一个私人分支,我认为这对你来说不是问题.


现在来解决你当前的问题.

  1. 如上所述添加上游远程.
  2. 重置您的本地分支以匹配upstream:

    git checkout master
    git reset --hard upstream/master
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果您在fork中创建了任何提交,则可以将cherry-pick它们添加到更新版本中master.如果你不记得或需要帮助找到它们,比如

    git log --oneline master origin/master
    
    Run Code Online (Sandbox Code Playgroud)

    应该向您显示不在上游的任何提交.


上面我假设你只使用一个分支,master.如果您还没有,我强烈建议您为您使用的每个功能/错误修复创建一个新分支.除了其他好处之外,这还允许您在等待较早的PR合并时开始处理另一个功能/错误修复.如果你从不直接提交master,那么你可以在没有--rebase或者--force-with-lease:

git checkout master
git pull upstream master
git push origin master
Run Code Online (Sandbox Code Playgroud)

要在更新后更新功能分支master,请执行以下操作:

git checkout myfeature
git rebase master
git push --force-with-lease origin myfeature # if you have already pushed
Run Code Online (Sandbox Code Playgroud)

  • 为什么这种“更简单的同步方法”需要这么多步骤,包括从本地存储库中提取内容? (3认同)
  • 哇,那正是我所需要的。特别是您提到的最后一行:`git push --force-with-lease起源主#如果您已经推送过,请保存我。谢谢! (2认同)
  • 最好的答案。第三部分是我想要使更改反映在其他分支中的内容 (2认同)

归档时间:

查看次数:

31219 次

最近记录:

6 年,12 月 前