如何解决git合并冲突,支持拉动更改?
基本上我需要从工作树中删除所有冲突的更改,而不必经历所有冲突,git mergetool同时保持所有无冲突的更改.最好在拉动时这样做,而不是之后.
git-rebase手册页提及-X<option>可以传递给git-merge.什么时候/怎么样?
我想通过应用具有递归策略的补丁和他们的选项(应用任何棒,而不是跳过整个冲突的提交)来重新定义.我不想合并,我想让历史变得线性.
我试过了:
git rebase -Xtheirs
Run Code Online (Sandbox Code Playgroud)
和
git rebase -s 'recursive -Xtheirs'
Run Code Online (Sandbox Code Playgroud)
但-X两种情况下git都拒绝了.
git rebase -Xtheirs适用于最新版本,但需要手动解决树冲突.解决这些冲突后,您需要运行git rebase -Xtheirs --continue(-X重复).
我使用git-svn并且我注意到当我必须在执行a之后修复合并冲突时,例如和的选项git svn rebase的含义是相反的.也就是说,如果存在冲突并且我想保留来自SVN服务器的版本并丢弃我在本地进行的更改,我必须使用,当我期望它.--ours--theirsgit checkoutourstheirs
这是为什么?
例:
mkdir test
cd test
svnadmin create svnrepo
svn co file://$PWD/svnrepo svnwc
cd svnwc
echo foo > test.txt
svn add test.txt
svn ci -m 'svn commit 1'
cd ..
git svn clone file://$PWD/svnrepo gitwc
cd svnwc
echo bar > test.txt
svn ci -m 'svn commit 2'
cd ..
cd gitwc
echo baz > test.txt
git commit -a -m 'git commit 1'
git svn rebase
git checkout --ours test.txt …Run Code Online (Sandbox Code Playgroud)