在git中管理修补的工作区而不共享补丁

时间:2013-10-29 15:29:46

标签: git git-rebase git-cherry-pick

我使用git和SVN,我有一个提交,我不想通过dcommit推送,但我需要进行本地开发。

我现在的方式是

git checkout git-svn -B master
git cherry-pick ????..work
git svn dcommit
git checkout -B work
git cherry-pick mypatch^0

在工作分支中,git-svn标记之后的提交具有包含mypatch的提交,之后是我实际为更改集所做的工作。

我想知道的是,是否可以将????指定为git-svn分支上work之后的第二次提交。这样我就不必查看日志并自行查找修订版。

1 个答案:

答案 0 :(得分:1)

找到正确的顺序。我需要标记新的补丁分支,以便我可以象征性地引用它。

git checkout git-svn -B master
git rebase --onto git-svn current-work-base work
git svn dcommit
git checkout -B work
git cherry-pick mypatch^0
git tag -f current-work-base

标记current-work-base必须指向git-svn

之后的修补程序

此解决方案可以在Windows批处理文件中运行,也不需要bash。 (只需将^更改为^^

请注意,在重新定位工作分支时,current-work-base标记需要再次更新。