我正在开发一个项目,每个人都使用SVN
作为集中式服务器,每个人都推动他们在该服务器上所做的更改。我想在本地使用Git
,我对git svn
很新。我用git svn clone
做了git svn clone -r HEAD https://svn.repo/app/branch
存储库,我想通过git进行更新。
我需要一个'git pull like'命令,但要从特定版本的SVN服务器仓库中提取。 还有一个'fetch like'命令从SVN服务器repo的特定版本中获取?
我的克隆项目中没有任何.svn
个文件夹,git remote
没有给我任何东西。但是我做了一个git config -l
我得到了SVN服务器的URL,所以不知怎的,我与SVN服务器链接了。我不知道如何取或拉。
谢谢!
答案 0 :(得分:43)
通过Git处理Subversion存储库的最佳方式:
git svn init -s https://svn.repo/app/ myrepo
假设在https://svn.repo/app/下,repo包含标准/trunk
,branches
和tags
子目录git svn fetch
直到不再提取提交(可能需要一段时间,有时会在Windows下中止)。git checkout -b trunk remotes/trunk
然后你可以简单地浏览,破解并提交你的Git Repo,其中包含所有Subversion提交和分支。
git svn rebase
git svn dcommit
要跳转到特定的Subversion修订版,您只需要通过git log
浏览历史记录并搜索镜像相应的Subversion修订的提交。您可以在提交消息的git-svn-id:
行中轻松发现Subversion修订版。只需使用git checkout <commithash>
明确签出该版本。
答案 1 :(得分:11)
一个好的开始:
要将新的svn提交提取到本地仓库:git svn rebase
将本地提交推送到SVN:git svn dcommit
您可能必须使用git stash
和git stash pop
,然后在使用上述两个命令时,如果您的工作副本发生了未经修改的更改。