GitHub一直说;该分支是X在前提交,Y在后提交;
我知道有几个类似的问题,但我认为我的情况有点不同 假设有一个GitHub存储库,我想为它做贡献。 我将该存储库转移到我的GitHub帐户中,然后从我电脑中的帐户克隆该转移。很好 在处理问题之前,我首先要将我的fork与“原始”存储库同步。我转到我的帐户分支,单击New Pull request,确保我选择我的作为基础,选择原始主文件作为头分支,我看到了差异(人们在原始存储库中进行的所有提交都不在我的存储库中)。 然后我在我的fork上创建pull请求,并将这些更改合并到我的fork中。 我去我的本地回购,做了一个git pull,我把所有的东西都同步了。好的 现在问题来了,在我的GitHub帐户中,它总是说“这个分支是提前提交的X”,其中“X”是我执行上述同步过程的次数。因此,每次我向原始存储库(而不是我的fork)执行拉入请求时,都表明我正在提交代码加上X个提交,这是我在fork上进行的与原始存储库同步的合并 当然,我不想将这些更改推送到原始存储库中,因为它们已经准备好了这些更改,所以我不明白为什么GitHub一直对我说我要提交更改 我认为这是必须在我的GitHub帐户上解决的问题,因为在我的本地存储库中没有任何更改或问题,实际上我甚至将其删除并重新克隆GitHub一直说;该分支是X在前提交,Y在后提交;,git,github,Git,Github,我知道有几个类似的问题,但我认为我的情况有点不同 假设有一个GitHub存储库,我想为它做贡献。 我将该存储库转移到我的GitHub帐户中,然后从我电脑中的帐户克隆该转移。很好 在处理问题之前,我首先要将我的fork与“原始”存储库同步。我转到我的帐户分支,单击New Pull request,确保我选择我的作为基础,选择原始主文件作为头分支,我看到了差异(人们在原始存储库中进行的所有提交都不在我的存储库中)。 然后我在我的fork上创建pull请求,并将这些更改合并到我的fork中。 我去我的
您有什么想法吗?正如您所猜测的,这些额外的提交很可能是您创建的拉请求的合并提交 将来,有一种更简单的方法可以将fork与原始存储库同步。在本地回购中,在初始克隆后执行以下操作:
git remote add upstream https://github.com/upstream/repo.git
然后,无论何时要同步来自上游的更改,请执行以下操作:
git pull --rebase upstream master
git push --force-with-lease origin master
(只有当您有尚未合并到上游回购中的承诺时,才需要使用--重设基础
和--强制租赁
选项。)
强制性警告:由于回基会重写历史记录,这可能会对其他在此分支上工作的人造成危险/破坏。确保你清楚地与任何与你合作的人交流你所做的事情。因为这是个人的叉子,我想这对你来说不会是个问题
现在,在事后解决您当前的问题
:
git checkout master
git reset --hard upstream/master
cherry-pick
将它们添加到更新版本的master
中。如果你记不住或需要帮助找到它们,比如
git log --oneline master origin/master
应该向您显示任何不在上游的提交上面我假设您只使用一个分支,
master
。如果您还没有,我强烈建议您为您处理的每个功能/错误修复创建一个新分支。在其他好处中,这允许您在等待合并早期PR时开始另一个功能/错误修复。如果您从未直接提交到主机
,则可以在不使用--rebase
或--force with lease
的情况下进行同步:
git checkout master
git pull upstream master
git push origin master
要在更新master
后更新要素分支,请执行以下操作:
git checkout myfeature
git rebase master
git push --force-with-lease origin myfeature # if you have already pushed
我和你有同样的问题,刚刚解决了这个问题 要解决这个问题:
git push--force with lease origin master#如果你已经按下了
保存了我。谢谢最佳答案。第三个半场是我所期待的,以使这些变化反映在其他分支中。我有这个问题,我的回购协议,我尝试了上述步骤,但它们没有帮助。看起来我的代码已经更新了,但它认为由于某种原因,如果您使用BitBucket而不是Github,那么在创建fork时,它会为您提供sync fork的复选框。这是一种开箱即用的功能,所有分支都通过原始存储库中的位存储桶进行更新。无需自行更新fork分支。只需使用本地分支方法,不要弄乱分支。@GSUgambit您仍然有这个问题吗?如果是这样的话,你可能想添加更多关于你具体情况的细节。(请随意在此处发布链接,以便我查看。)了解前/后数字来自