简短的问题:什么是git-svn相当于svn up -r r1130仅更新到编号的提交(使用svn编号)?
我正在使用git-svn所以我可以使用git和管理(很多)我团队的svn存储库的本地分支.我有一个版本的软件,我讨厌使用特定的硬件设置.自从我上次使用它以来,svn repo已经超越了这项工作的稳定,优点.我想将本地分支更新为表示稳定提交的编号修订.我可以在svn中执行此操作svn up -r r1130,但我更喜欢git.
我一直忘记过去我是如何做到这一点的,并且发现自己正在搜索SO和寻求最佳方式的帮助页面.也许我缺少一个措辞不同的Q&A?
只需在干净的树上查看较旧的版本就很容易了,但是当我在树顶上进行提交时,"重绕头重播你的工作......"我通常喜欢的部分意味着在添加更改之前,我将在树中找到一个点!
就目前而言,我将以git svn rebase交互方式进行反对,以便退出我不想要的提交,但我很难相信这是做到这一点的最好甚至是好方法.
小智 18
我更喜欢rebase因为git-svn无论如何都要在你之前改变你的改变dcommit.试试这个:
git checkout `git svn find-rev r1241` # Go to the svn version of interest
git checkout -b master_r1241 # Create a new brach matching it
git checkout hwTesting # Merge previously created changes
git rebase master_r1241 # rebase on top of not quite up-to-date master branch
Run Code Online (Sandbox Code Playgroud)
你也可以一步到位:(总是可以使用reflog恢复,或者rebase --abort如果事情发生了可怕的错误).
git checkout hwTesting # Checkout feature branch
git rebase `git svn find-rev r1241` # rebase on top of not quite up-to-date master branch
Run Code Online (Sandbox Code Playgroud)