2011-05-25 33 views
1

我正在開發一個項目,在我切換到git之前,我已經做了一些更改,我需要去做。我想使用GIT功能來解決這個問題。如果GIT比較年輕,我該如何向GIT添加顛覆歷史?

我的問題是,我怎麼能把我的.svn歷史記錄與.git合併爲一個方式,以便將.svn提交放在主機git repo中正確的歷史上下文中?

有意義嗎?

+0

這方面的進展如何? – 2011-05-26 16:41:04

+0

我有一個實施你的建議的計劃,但我一直忙不過來,目前這一切都落在了我的頭上。別擔心,如果有效,你會得到你的勾號! :d – 2011-05-26 19:18:37

回答

1

我自己沒有嘗試過,但git-svn man page使用以下命令「跟蹤和貢獻Subversion管理的項目的主幹」。

# Clone a repo (like git clone): 
     git svn clone http://svn.example.com/project/trunk 
# Enter the newly cloned directory: 
     cd trunk 
# You should be on master branch, double-check with 'git branch' 
     git branch 
# Do some work and commit locally to git: 
     git commit ... 
# Something is committed to SVN, rebase your local changes against the 
# latest changes in SVN: 
     git svn rebase 
# Now commit your changes (that were committed previously using git) to SVN, 
# as well as automatically updating your working HEAD: 
     git svn dcommit 
# Append svn:ignore settings to the default git exclude file: 
     git svn show-ignore >> .git/info/exclude 

這應該只要你有沒有對您計劃從到dcommit,如下所述分支運行git mergegit pull工作。不過,爲了安全起見,您應該仔細閱讀git-svn man page中的所有注意事項。

爲了簡單起見和 使用Subversion的互操作,這是 建議所有的Git SVN用戶 克隆,獲取和dcommit直接從 的SVN服務器,並避免任何混帳 克隆/拉/合併/在git存儲庫和分支之間推送操作 。 在git分支和用戶之間交換 代碼的推薦方法是 git format-patch和git am,或者僅僅是 'dcommit'ing到SVN存儲庫。

不 建議您從因爲Subversion用戶 看不出有任何合併你所做的計劃 dcommit一個分支運行git合併或混帳拉。 此外,如果您從 合併或從 SVN分支的鏡像git分支,dcommit可能會提交到 錯誤的分支。