在GitHub中进行rebase之后,x提交后面的y提交

时间:2015-02-09 13:58:36

标签: git github version-control

我最近通过以下代码将最后一次提交合并为一个

git rebase -i HEAD~y - >然后我将所有y提交压缩(通过编辑文件) - >然后我使用 git reset --soft HEAD~y 重置了头部 - >然后我使用 git commit

提交所有内容

现在我的git hub显示我领先于1次提交,后面是y提交(在github windows中)。

现在git pull - >获取主服务器的所有当前提交,并再次包含此新的合并提交。现在我结束了y + 1提交。任何人都可以解释如何推送我最近的合并提交。

我对GitHub很安静。如果任何人都可以分享GitHub的基本架构,那也会有所帮助。我能找到的就是如何创建存储库等。

感谢您的时间

1 个答案:

答案 0 :(得分:4)

你重新定位了你的' y'使用git rebase命令提交为1。所以现在你将所有这些提交创建为1.然后你撤消它,然后下一个y提交git reset --soft HEAD~y这一步接受你的提交和下一个y-1提交并从你当地的分支中删除它们历史,但留下补丁。然后提交这些更改。

我假设第一个y承诺你重新定位没有被推到Github,但第二个y是。所以现在当你拉动时,Git发现你已经在你的本地存储库中创建了一个提交(大量的合并球)和y提交存在于Github中的你没有的,因为你重置并将它们合并为一个单一的提交。

重新定位后,无需重置分支,这就是导致问题的原因。要解决你需要做的事情:

git reset HEAD^
git stash -u
git pull
git stash pop

这样做可以通过您所做的所有重大更改撤消您的一次提交。将它放在一边,以便您可以引入Github中缺少的更改。从Github中提取您所提交的提交,然后重新应用我们预留的更改。我相信你正在重复的更改将不再显示在差异中,如果你现在提交更改将发现你只提前1次提交。