2013-05-31 35 views
20

我正在研究一個項目,每個人都使用SVN作爲中央服務器,每個人都推送他們在該服務器上所做的更改。我想在本地使用Git,我很新git svn。我做了一個git svn clonegit svn clone -r HEAD https://svn.repo/app/branch存儲庫我想通過git進行更新。Git-SVN:從中央SVN服務器更新Git回購

我需要'git pull like'命令,但要從SVN服務器回購的特定版本中提取。 還有一個'取像'命令從SVN服務器回購的特定版本中獲取?

我沒有任何.svn文件夾在我的克隆項目和git remote不給我任何東西。但是我做了一個git config -l,我得到了SVN服務器的URL,所以不知何故我連接到了SVN服務器。我不知道如何取或拉。

謝謝!

回答

37

最好通過的Git在Subversion版本庫的工作方式:

  1. git svn init -s https://svn.repo/app/ myrepo假設https://svn.repo/app/下回購包含標準/trunkbranchestags子目錄
  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瀏覽歷史搜索鏡像相應的顛覆提交的提交。您可以在提交消息的git-svn-id:行中輕鬆找到Subversion版本。只需使用git checkout <commithash>即可明確檢出該版本。

10

一個良好的開端:

爲了獲取新的svn提交到本地的回購協議:git svn rebase

把你的本地提交到SVN:git svn dcommit

你可能會使用git stashgit stash pop,之前使用上面的兩個命令時,您的工作副本有未得到改變的變化。