我正在開發一個項目,在我切換到git之前,我已經做了一些更改,我需要去做。我想使用GIT功能來解決這個問題。如果GIT比較年輕,我該如何向GIT添加顛覆歷史?
我的問題是,我怎麼能把我的.svn歷史記錄與.git合併爲一個方式,以便將.svn提交放在主機git repo中正確的歷史上下文中?
有意義嗎?
我正在開發一個項目,在我切換到git之前,我已經做了一些更改,我需要去做。我想使用GIT功能來解決這個問題。如果GIT比較年輕,我該如何向GIT添加顛覆歷史?
我的問題是,我怎麼能把我的.svn歷史記錄與.git合併爲一個方式,以便將.svn提交放在主機git repo中正確的歷史上下文中?
有意義嗎?
我自己沒有嘗試過,但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 merge
或git 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可能會提交到 錯誤的分支。
這方面的進展如何? – 2011-05-26 16:41:04
我有一個實施你的建議的計劃,但我一直忙不過來,目前這一切都落在了我的頭上。別擔心,如果有效,你會得到你的勾號! :d – 2011-05-26 19:18:37