Git-SVN:从集中式SVN服务器更新Git repo

Jac*_*ieg 23 git git-svn git-pull git-fetch

我正在开发一个项目,每个人都将其SVN用作集中式服务器,每个人都会推动他们在该服务器上所做的更改.我想在Git本地使用,我很新git svn.我做了一个git svn clone存储库,git svn clone -r HEAD https://svn.repo/app/branch我希望通过git进行更新.

我需要一个'git pull like'命令,但要从SVN服务器repo的特定版本中提取.还有一个'fetch like'命令从SVN服务器repo的特定修订版中获取?

我的.svn克隆项目git remote中没有任何文件夹,也没有给我任何东西.但是我做了一个git config -l,我得到了SVN服务器的URL,所以不知怎的,我与SVN服务器链接.我不知道如何取或拉.

谢谢!

ben*_*lor 43

通过Git在Subversion资源库上工作的最佳方式:

  1. git svn init -s https://svn.repo/app/ myrepo假设下的https://svn.repo/app/回购包含标准/trunk,branchestags子目录
  2. git svn fetch在myrepo中执行a 直到不再提取提交(可能需要相当长的时间,有时在Windows下中止).
  3. 通过检查特定的Subversion分支或主干 git checkout -b trunk remotes/trunk

然后,您可以简单地浏览,破解并提交到包含所有Subversion提交和分支的Git Repo.

  • 从SVN使用引入新提交 git svn rebase
  • 将您的本地提交推送到SVN使用 git svn dcommit

要跳转到特定的Subversion修订版,您只需要浏览历史记录git log并搜索镜像相应的subversion提交的提交.您可以git-svn-id:在提交消息的行中轻松发现Subversion修订版.只需使用a git checkout <commithash>来明确签出该版本.


Gui*_*ont 12

一个好的开始:

要获取新的svn提交到您的本地仓库: git svn rebase

要将本地提交推送到SVN: git svn dcommit

在使用上述两个命令之前,当您的工作副本具有未经修改的更改时,您可能必须使用git stashgit stash pop.