最佳答案
我使用 git-svn,并注意到当我在执行 git svn rebase
之后需要修复合并冲突时,--ours
和 --theirs
选项对于例如 git checkout
的意义是相反的。也就是说,如果存在冲突,我想保留来自 SVN 服务器的版本,并放弃在本地进行的更改,我必须使用 ours
,而我希望它是 theirs
。
为什么?
例如:
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
cat test.txt
# shows "bar" but I expect "baz"
git checkout --theirs test.txt
cat test.txt
# shows "baz" but I expect "bar"