在git中进行合并时,我意外地覆盖了另一个开发者的更改.我知道如何撤消上次提交,即我的合并.
我的问题是我已经将这些提交推送到我们的在线存储库中.因此,如果我回滚,再次进行合并合并(这次是他的修改)并尝试再次推送它,会发生冲突(对吗?).处理这个问题的方法是对的?
编辑 澄清一下,情况如下:
commit A --- commit B --- merge
Run Code Online (Sandbox Code Playgroud)
但在合并中,我不小心丢弃了在提交A中进行的修改.这不是一个真正的问题.我知道如何在本地进行更改(撤消合并).但我的问题是整个事情已被推入我们的共享存储库(想想github或bitbucket).
默认情况下,远程服务器将禁止覆盖已推送的提交.这是因为那些新提交是不同的对象,与之前发布的对象不兼容.这意味着任何已经从远程获取的人都会在覆盖提交后修复它时遇到重大问题.所以你应该重新考虑用其他东西覆盖提交.请注意,git revert使用merge也会提交,因此您可能需要考虑这一点.
话虽这么说,即使它与服务器上的内容冲突,你仍然可以推送重写的提交.您可以通过强制推动使用git push --force或git push -f简单地执行此操作.
| 归档时间: |
|
| 查看次数: |
11065 次 |
| 最近记录: |