如何将修改后的提交推到远程Git存储库?

如何将修改后的提交推到远程Git存储库?

当我对我的源代码做了一些工作后,我做了我通常的提交工作,然后我把它推到了一个远程存储库中。但是我注意到我忘记了在源代码中组织我的导入。因此,我执行“修改”命令来替换以前的提交:

> git commit --amend

不幸的是,提交不能被推回存储库。它被这样拒绝:

> git push origin
To //my.remote.repo.com/stuff.git/
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to '//my.remote.repo.com/stuff.git/'

我该怎么办?(我可以访问远程存储库。)


繁花不似锦
浏览 598回答 3
3回答

慕莱坞森

实际上我曾经推过--force和.git被莱纳斯骂了一顿大时代..一般来说,这会给其他人带来很多问题。一个简单的答案是“不要这么做”。我看到其他人给出了这样做的方法,所以我不会在这里重复。但是这里有个小提示要从这种情况中恢复过来。后您已经将修改后的提交与-强制(或+主)一起推开了。使用git reflog找出你修改过的旧承诺old,我们将调用您通过修改创建的新提交。new).在.之间创建一个合并old和new,记录.的树new,就像git checkout new && git merge -s ours old.把它合并到你的主人git merge master使用git push . HEAD:master把结果推出来。然后,那些不幸地将他们的工作建立在提交的基础上的人,通过修改和强制推送,就会看到结果的合并会让你更喜欢。new过关old..他们以后的合并不会看到old和new这是你修改的结果,所以他们不必受苦。

喵喵时光机

快速咆哮:没有人在这里发布这个简单的答案,这表明了GitCLI显示出的绝望的用户敌意。不管怎么说,如果你还没试过用力的话,“显而易见”的方法就是先拉。这就引出了你修改过的改变(现在已经没有了),这样你就可以再次得到它了。一旦你解决了任何冲突,你就可以再推一次。因此:git pull如果在PULL中出现错误,可能在本地存储库配置中出现了错误(我在.git/config分支部分中出现了一个错误的引用)。之后git push也许你会得到一个额外的承诺与主题告诉“微不足道的合并”。
打开App,查看更多内容
随时随地看视频慕课网APP