假设我的本地git存储库中有多个提交尚未推送到svn。例如,这四个提交在master上。
A <-- B <-- C <-- D
A是最早的提交,不在svn中,D是最新的提交。
如何使用git svn dcommit
仅将A和B推送到svn,但仅在我的本地git存储库中保留C和D?
欢迎使用替代工作流程。
答案 0 :(得分:3)
dcommit
接受一个可选参数,指定在提交期间作为HEAD处理的内容,因此其中任何一个都可以工作(其中B
是对该特定提交的引用,如果有的话,可以是名称,或者是散列):
git svn dcommit B
git svn dcommit HEAD~2
答案 1 :(得分:1)
我一直在考虑这个问题,并且可以解决我自己的问题。
我可以为我正在处理的每个离散任务创建一个本地分支。如果我完成一项工作并等待代码审查,我可以创建一个新分支并开始处理独立任务。
当给定任务完成后,我运行git svn rebase
。然后我将我的本地分支在master上快速转发,快速转发到该分支的负责人,然后dcommit。
我的问题是提交A和B是一项任务的一部分,而C和D是另一项独立任务。 C和D属于不同的分支,永远不应该在A和B之上。
这个问题的答案......
git-svn dcommiting a single git commit
似乎表明只提交A和B是不可能的。