我在 Git 存储库中有一些代码需要与 SVN 存储库同步。我的食谱看起来像这样:
- 创建一个 SVN 存储库(本地的,用于测试,将是一个远程的)。
- 创建初始布局,提交 1 次修订
-
git svn clone -T '/trunk' <REPO>
基于初始提交的新 Git 存储库。 -
git remote add dev <ORIGINAL>
其次是git pull dev <ORIGINAL_BRANCH>
.现在我在存储库中有了基于初始 SVN 提交的主分支。 -
git svn rebase
接下来是dcommit
.
但是第 5 步失败了:
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging X
Applying: Y
Applying: Z
Using index info to reconstruct a base tree...
<stdin>:269: trailing whitespace.
<stdin>:315: trailing whitespace.
<stdin>:400: trailing whitespace.
* Method 2.6. Returns zero or two elements
<stdin>:3762: trailing whitespace.
warning: 4 lines add whitespace errors.
Falling back to patching base and 3-way merge...
随后是一些“自动 merge ”和“CONFLICT(内容)”消息,rebase 最终以友好的“无法 merge 更改”停止。我能做些什么来自动解决这些冲突吗?我什至不明白 rebase 时怎么会发生冲突!
最佳答案
冲突就是冲突,git 永远无法真正为您解决它们。只有人类才能确定两个相互排斥的修改中哪一个是正确的。
至于为什么在 rebase 期间会发生冲突?它实际上与 merge 操作是同一种操作,只是产生了不同的历史记录。假设您在这里将提交 X rebase 到提交 D:
- A - B - C - D
\
X
结果内容应该与将 D merge 到 X 中时相同。如果提交 B 中的某些内容与提交 X 中所做的更改冲突,则会发生 merge 冲突。无论您是 merge 还是 rebase 都没关系。
关于svn - 从 Git 到 SVN : Failed to merge in the changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215726/