我很難找出一個好的標題,所以如果你有一個想法如何以更清晰的方式表達我的問題,請編輯。已經存在的SVN項目的常見git回購
我正在使用SVN的大項目。由於我習慣於使用git(經常提交,與許多分支機構合作),也不想更改我的工作流,因此我在SVN工作副本的父目錄中設置了一個git存儲庫,以進行本地版本控制。所有SVN相關文件已包含在.gitignore
中。使用git-svn對我來說不是一個真正的選擇,因爲我不想用我所有的小提交「污染」SVN回購。
現在我已經開始在同一個項目上與另一個人(叫他B人)的工作密切相關的工作。然而,他並沒有準備好將自己的工作推到SVN倉庫中,所以最初他手動給了我他更改過的文件,並將它們包含在我的分支topic
的項目中。由於這個過程非常費力,我們決定使用git來交換項目的進度。
因爲我不想與人B的SVN一塌糊塗,我的想法是以下幾點:
- 我創建了一個裸露的回購從我的混帳回購協議,並把它這是由人訪問的服務器上乙
- 某乙運行
git init
,複製了我的.gitignore
文件,運行git add .
,使他最初提交 - 某乙重命名自己的分支
topic
,增加了裸回購我遠程origin
創建和獲取所有數據
由於我已經將他的工作包含在我的回購庫中,因此人員B的topic
和origin/topic
現在應該沒有任何區別。但他們這樣做。我曾經遇到過
兩個問題(有可能更多):
- 某些文件已被添加到,即使他們是
.gitignore
名單上(這是工作的完全相同的文件某乙的混帳回購協議對我罰款) - 當運行
git diff topic origin/topic
它顯示一個文件刪除兩個話題和來源/主題,這肯定存在(以產地/話題道:/dev/null
)
沒有任何人有一個id ea這裏發生了什麼問題?也歡迎提供替代方案的建議,但請注意,B人員在整個項目中將他的更改推向SVN回購和/或完全放棄SVN是沒有選擇的。
當你說你不想用小提交污染SVN回購時,我很困惑。你的提交直到你推動纔會觸發SVN,所以你可以在推送前清理你的歷史記錄,一切都會好的。我在與Mercurial合作時正在做類似的事情。 – Ben
我不想使用git-svn的另一個原因是我想100%肯定不要搞亂任何東西。此外,我想保持我的提交歷史是這樣,但僅限於我自己。但是,感謝您的反饋! – LLang