我正在做一個開發項目。git svn - 我可以同時使用git和svn嗎?不需要git和svn之間的交互
該公司使用SVN
,所以對於主commit
和checkout
應通過SVN
來完成。
但是,我不喜歡SVN
並且是git
用戶。因爲只有當我認爲我的代碼好,我會承諾公司SVN
,我想用我自己的歷史門將git
。
我不需要用git來做SVN
的事情,反之亦然。
我可以同時使用SVN和git來控制我的同一代碼嗎? 他們之間沒有互動。
我正在做一個開發項目。git svn - 我可以同時使用git和svn嗎?不需要git和svn之間的交互
該公司使用SVN
,所以對於主commit
和checkout
應通過SVN
來完成。
但是,我不喜歡SVN
並且是git
用戶。因爲只有當我認爲我的代碼好,我會承諾公司SVN
,我想用我自己的歷史門將git
。
我不需要用git來做SVN
的事情,反之亦然。
我可以同時使用SVN和git來控制我的同一代碼嗎? 他們之間沒有互動。
您可以使用git svn clone <SVN repo URL>
將Subversion存儲庫克隆到您的機器。該代碼將作爲git存儲庫提供。你可以在那裏做你的工作,並按你的意願進行本地提交。有一個命令行選項可以獲得「淺」結帳,而不是整個常用的倉庫。我忘記了它是什麼。
隨時,您要運行相當於svn update
,做一個git svn rebase
。這會獲取新的提交,在您上次同步後簽入SVN,然後將更改重新綁定到新提示上。
當您準備好提交時,請執行git svn dcommit
。這將把你所有的新提交一個接一個發送給svn。你也可以將你的本地提交壓縮到一個單獨的文件中,然後通過首先執行本地rebase然後svn dcommit來發送它。這應該在初始分支上完成(通常爲master
)。
事實上,你從顛覆中檢出,然後在git本地工作意味着它們之間存在「交互」,所以你最後的語句無效。
對本應作爲評論發佈的答案進行了編輯。我已經恢復了編輯並在此評論中增加了逐字添加 - 通常認爲將所有更改作爲單個修訂提交是一種不好的做法(例如,請參閱http://stackoverflow.com/questions/107264/how-often -to-commit-changes-to-source-control和http://www.codinghorror.com/blog/2008/08/check-in-early-check-in-often.html)。 –
只要忽略SVN的'.git'文件夾和Git的'.svn'文件夾,你應該沒問題。或者你在問如何基本上同時從兩個方向推/拉? – Blender
但是爲什麼? git在另一端的svn倉庫中工作得很好,爲什麼不能從中受益呢? –
當然可能,並且對你的同事有一個公平的舉動,而不是推動未完成的改變。然而,在那裏隱藏着一個巨大的危險:你會傾向於向公司存儲庫提交很少的提交。這意味着與同事相比,你會產生更多的衝突。在使用Subversion時,使用頻繁的提交行爲是有意義的。我必須學習這個難題:-) – arkascha