使用 git-svn 挑选单个提交
cherry-picking an individual commit using git-svn
假设我已经使用 git svn clone
克隆了一个现有的 SVN 存储库,并希望将我所做的更改推送到新的 ("forked") 上游 Git 存储库。
同时,我希望能够"pull"从上游SVN仓库中进行任何更改并将它们推送到上游Git(仓库可能有分歧,但不太可能发生冲突) .
- 我该怎么做 w/o 为每个 SVN 提交(使用
svn diff
)创建补丁文件并将其应用到 Git 存储库?
- 是否可以合并来自 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 分支上重新设置从开始提交(不包含它)到结束提交(包含它)的范围。
假设我已经使用 git svn clone
克隆了一个现有的 SVN 存储库,并希望将我所做的更改推送到新的 ("forked") 上游 Git 存储库。
同时,我希望能够"pull"从上游SVN仓库中进行任何更改并将它们推送到上游Git(仓库可能有分歧,但不太可能发生冲突) .
- 我该怎么做 w/o 为每个 SVN 提交(使用
svn diff
)创建补丁文件并将其应用到 Git 存储库? - 是否可以合并来自 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 分支上重新设置从开始提交(不包含它)到结束提交(包含它)的范围。