Git-SVN:从集中式 SVN 服务器更新 Git 存储库

标签 git git-svn git-pull git-fetch

我正在做一个项目,每个人都使用 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 存储库的最佳方式:

  1. git svn init -s https://svn.repo/app/ myrepo假设在 https://svn.repo/app/ 下 repo 协议(protocol)包含标准 /trunk , branchestags子目录
  2. 做一个git svn fetch在 myrepo 中,直到不再获取提交(可能需要相当长的时间,有时在 Windows 下会中止)。
  3. 通过 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/

相关文章:

git - 无法符号链接(symbolic link) share/git-core/contrib/usr/local/share/git-core 不可写

git-tfs 克隆失败,错误代码为 128

Git:暂存补丁的能力

git svn 在非标准 svn 存储库布局上指定分支和标签

git - 在 merge 之前查找哪些文件存在冲突?

Git Svn 获取更多修订

git - 使用 GIT-SVN 而不是其他 SVN 客户端的缺点?

GIT pull error - 远程对象已损坏

git-pull - 拉命令错误 : Failed connect to github. com:8080

git - `git pull` 没有任何反应