使用 git-svn 挑选单个提交

cherry-picking an individual commit using git-svn

假设我已经使用 git svn clone 克隆了一个现有的 SVN 存储库,并希望将我所做的更改推送到新的 ("forked") 上游 Git 存储库。

同时,我希望能够"pull"从上游SVN仓库中进行任何更改并将它们推送到上游Git(仓库可能有分歧,但不太可能发生冲突) .

  1. 我该怎么做 w/o 为每个 SVN 提交(使用 svn diff)创建补丁文件并将其应用到 Git 存储库?
  2. 是否可以合并来自 SVN 的一系列提交(w/o 逐一挑选它们)并在我的 Git master 一步到位?

您的问题:

1.If 可以应用本地 git 存储库中不存在的所有提交,您可以使用 git svn rebase。如果你想一个一个地应用这些提交,你可以使用 git svn fetch 然后 git cherry-pick commit.

2.Two步可以满足您的要求:

git svn fetch
git rebase --onto master <start commit> <end commit>

它将在 master 分支上重新设置从开始提交(不包含它)到结束提交(包含它)的范围。