我正在做一个项目,每个人都使用 SVN
作为中央服务器,每个人都将他们所做的更改推送到该服务器上。我想在本地使用 Git
,而且我对 git svn
还很陌生。我用 git svn clone -r HEAD https://svn.repo/app/branch
对存储库进行了 git svn clone
我想通过 git 进行更新.
我需要一个“git pull like”命令,但要从 SVN 服务器存储库的特定修订版中 pull 。 是否还有从 SVN 服务器存储库的特定修订版中获取的“类似获取”命令?
我的克隆项目中没有任何 .svn
文件夹,git remote
也没有给我任何东西。但是我执行了 git config -l
并获得了 SVN 服务器的 URL,所以我以某种方式与 SVN 服务器链接。我不知道如何获取或 pull 。
谢谢!
最佳答案
通过 Git 处理 Subversion 存储库的最佳方式:
-
git svn init -s https://svn.repo/app/ myrepo
假设在 https://svn.repo/app/ 下 repo 协议(protocol)包含标准/trunk
,branches
和tags
子目录 - 做一个
git svn fetch
在 myrepo 中,直到不再获取提交(可能需要相当长的时间,有时在 Windows 下会中止)。 - 通过
git checkout -b trunk remotes/trunk
检查特定的 Subversion 分支或主干
然后您可以简单地浏览、破解并提交到包含所有 Subversion 提交和分支的 Git 存储库。
- 要从 SVN 中提取新提交,请使用
git svn rebase
- 要将本地提交推送到 SVN,请使用
git svn dcommit
要跳转到特定的 Subversion 修订版,您只需通过 git log
浏览历史记录并搜索反射(reflect)相应颠覆提交的提交。您可以轻松地在 git-svn-id:
中发现 Subversion 修订版提交消息的行。只需使用 git checkout <commithash>
明确 checkout 该版本。
关于Git-SVN:从集中式 SVN 服务器更新 Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16857063/