Git Svn的困扰,为什么我永远无法进行dcommit操作?

6
我有一个git svn仓库。
git svn clone http://myrepo/ myrepo

我不想在主分支工作:

git checkout -b development

暂时进行黑客攻击。

git checkout master
git svn rebase
git rebase development
git svn dcommit

目前为止一切顺利,似乎自从我上次提交以来没有人提交,SVN合并没有进行任何更改,并且我从开发分支合并代码也没有问题。

Merge conflict during commit: File or directory 'inc/data.inc' is out of date; try updating: resource out of date; try updating at /usr/local/git/libexec/git-core/git-svn line 576

不好意思,SVN先生,实际上这并不是最新版本。我向您询问最新版本时,您告诉我已经有了,但事实上我已经进行了修改。

出了什么问题,为什么我无法提交?


1
你不需要切换回主分支进行dcommit。如果你在开发分支上输入git svn info,你会发现它也连接到了svn主干。因此,直接从该分支进行dcommit即可,而无需切换回主分支。 - Jason LeBrun
有时候我发现git svn rebase会有些棘手,因此我宁愿将svn分支单独保留,并在git中进行任何合并/打补丁的操作。这就是为什么有2个分支的原因。 - jhogendorn
1个回答

5
我认为您在错误地使用git rebase命令。请尝试以下方式:

git rebase的正确用法如下:

I dont want to work in master:

git checkout -b development

hack for a while.

git checkout master
git svn rebase
git checkout development
git rebase master
git svn dcommit
或者,简写为
git checkout development
git rebase master

git rebase master development

1
哦天啊,当你因为睡眠不足而搞砸基本的语法时,你就知道自己该休息了。非常感谢。 - jhogendorn
或者只需从开发分支执行以下命令:git svn rebase; git svn dcommit;,它已经跟踪了svn主干。 - Jason LeBrun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接