作者:手机用户2502892641 | 来源:互联网 | 2023-05-22 18:50
我最近通过以下代码将last y commits合并为一个
git rebase -i HEAD~y
->然后将所有y提交压缩(通过编辑文件)->然后,我使用git reset --soft HEAD~y
-> 重新设置了Head,然后,我使用提交了所有内容git commit
现在我的git hub显示我在1个提交前面,在y个提交后面(在github窗口中)。
现在git pull
->从主数据库获取所有当前提交,并再次包含此新的合并提交。现在我结束了y + 1次提交。谁能解释我如何推送我最近合并的提交。
我是GitHub的业余爱好者。如果任何人都可以共享GitHub的基本架构,这也将有所帮助。我所能找到的就是如何创建存储库等。
谢谢你的时间
1> Schleis..:
您可以使用git rebase命令将'y'提交重新设为1。因此,现在您已将所有这些提交创建为1。然后撤消该操作,并使用下一个y提交进行git reset --soft HEAD~y
下一步。此步骤将执行您的提交和下一个y-1提交,并将其从本地分支的历史记录中删除,但保留补丁。然后您提交这些更改。
我假设您重新确定基准的第一个y提交没有推送到Github,但是第二个y提交了。因此,现在当您拉时,Git会看到您在本地存储库中创建了一个提交(大型合并球),而Github中没有的y提交却没有了,因为您将它们重置并合并为一个提交。
重新设置基准后,无需重置分支,这就是造成您的问题的原因。要解决此问题,您需要做的是:
git reset HEAD^
git stash -u
git pull
git stash pop
这样做是将您所做的所有巨大更改撤消您的承诺。将其放在一边,以便您可以引入Github中缺少的更改。从Github中拉出您后面的提交,然后重新应用我们保留的更改。我相信您要重复的更改将不再显示在差异中,并且如果您现在提交更改,将发现您仅比预期提前1次提交。