我已经检查了各种问题.第一个提供了一个巨大的问题和答案(相关的?不确定),第二个提供了错误的答案作为最佳答案.
我有一个叫做的分支great-use-this.我有另一个叫做的分支master.我想合并great-use-this到master中,并避免自动合并冲突.
什么是做到这一点最简单和最简单的方法是什么?
注意:我实际上已经想到了这一点(使用第三个分支ours,但是无论如何这对SO来说会很好.
Von*_*onC 25
是的,创建第三个分支并执行一个merge -s ours是一个解决方案.
但是你会在这里发现所有"我们没有宣传任何"他们的"合并策略".
在用另一个分支工作替换你的工作之间,或者简单地摆脱当前的工作并完全取代另一个工作,Junio C. Hamano(主要的Git Maintainer)更喜欢第二种方法:
我认为"
-s theirs"更糟糕.这就是你如何放弃你所做的事情(也许是因为另一方有比你的黑客更好的解决方案),但这可以更容易和干净地完成:Run Code Online (Sandbox Code Playgroud)$ git reset --hard origin/master有些人可能会说"但是有'
merge -s theirs',我也可以保留我的所作所为".重置只是放弃了我的所作所为.这种逻辑也存在缺陷.你可以改为:
Run Code Online (Sandbox Code Playgroud)$ git branch i-was-stupid $ git reset --hard origin/master如果你真的想记录你的失败.
-s theirs与上述"重置为原点,丢弃或搁置失败的历史"相比,一个大问题是,如果你做了"你的进一步发展所依据的"主人"历史将永远保留你的失败废话" - 他们的".希望随着时间的推移你会成为一个更好的程序员,你最终可能会有一些值得与你的主分支机构附近的世界分享的东西.然而,当这种情况发生时,你不能让你的主分支被上游拉动,因为更广泛的世界根本不会对你早先的错误感兴趣.
小智 8
前几天遇到这个问题:
httpx://seanius.net/blog/2011/02/git-merge-s-theirs/
更新:旧网址已关闭.以下是Archive.org的Wayback Machine的文章:
git merge -s ours ref-to-be-merged
git diff --binary ref-to-be-merged | git apply -R --index
git commit -F .git/COMMIT_EDITMSG --amend
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20682 次 |
| 最近记录: |