一开始并没有那么糟糕,但现在我有数百个无操作合并问题(由git rebase --skip
解决)。
我为我的小组设置了一个共享git repo,因为它更容易处理。但该公司使用SVN,所以我必须让SVN与GIT保持同步。起初就像一个梦一样,但经过几周的GIT,给了我很多以下的错误。
Applying: * making all config actions work
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/controllers/vulnerabilities_controller.rb
CONFLICT (content): Merge conflict in app/controllers/vulnerabilities_controller.rb
Auto-merging public/javascripts/network_analysis_vulnerability_config.js
CONFLICT (content): Merge conflict in public/javascripts/network_analysis_vulnerability_config.js
Failed to merge in the changes.
Patch failed at 0046 * making all config actions work
我的工作流程:
git co master
git pull origin
git svn rebase
... deal with no-op merge problems ...
git svn dcommit
git pull origin
git push origin
问题在于SVN中的内容是正确的,因此我使用git rebase --skip
,但在我能够提交之前,我必须这样做数百次。
如何永久清除这些合并问题?
答案 0 :(得分:3)
我认为这个工作流程根本不是一个好主意。 Subversion仅支持线性历史记录,因此与SVN同步的分支不应包含任何合并提交。此外,git svn dcommit
会重写被推送的提交(即他们的SHA更改),如果已经与另一个repo共享,则可能导致不良事件发生。请参阅git help svn
的CAVEATS部分。
也许这种工作流程可以提供帮助:http://unethicalblogger.com/posts/2008/10/git_back_subversion_mostly_automagically_part_33