作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 SVN 分支的问题。我使用 git checkout -t -b stable svn/stable
对其进行了检查。然后我用 git rebase master
进行了 merge 。之后,我尝试使用 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)
...
有人知道我做错了什么以及如何做对吗?
最佳答案
我最近遇到了同样的错误。问题是,当您 rebase 到 master 时,它首先将当前分支硬重置为 master,然后应用 merge 到它的提交。但是你的 master 分支与 svn/trunk
相关联,因此新重置的分支也与它相关联。因此 dcommit
上的 git-svn
认为当您推送它们时,提交被“插入”到 svn/trunk
中。
解决方案是使用 git merge --no-ff
而不是 git rebase
。或者使用 Subversion 本身的 merge 功能。
关于Git:如何在 rebase 后提交到 SVN 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282886/
我是一名优秀的程序员,十分优秀!