我最近通过以下代码将最后一次提交合并为一个
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的基本架构,那也会有所帮助。我能找到的就是如何创建存储库等。
感谢您的时间
答案 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次提交。