我的SVN分支有问题。
我用git checkout -t -b stable svn/stable
结帐了。
然后我与git rebase master
合并。
之后,我尝试使用git svn dcommit
但现在看来,Git将更改推送到主干而不是分支:(
git status
告诉我:
# On branch stable
# Your branch and 'svn/stable' have diverged,
# and have 218 and 52 different commit(s) each, respectively.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
...
有人知道我做错了什么,怎么做对了?
答案 0 :(得分:2)
我最近遇到了同样的错误。当你重新掌握它时,它首先将当前分支硬重置为master,然后应用提交合并到它。但是您的主分支与svn/trunk
相关联,因此新重置的分支也与它相关联。因此git-svn
上的dcommit
认为提交已经“插入”svn/trunk
。
解决方案是使用git merge --no-ff
代替git rebase
。或者使用Subversion本身的合并功能。
答案 1 :(得分:0)
现在它有效,我这样做了:
git checkout master
git svn rebase
git checkout --track -b svn_stable svn/stable
git merge --squash master
git commit -m "Bring stable up-to-date with trunk"
git svn dcommit --dry-run
git svn dcommit
合并比使用冲突处理的rebase容易得多。
在这次尝试中,我忘记使用--no-ff
,这会强制每次合并提交,对吗?
感谢您的帮助:)