簡體   English   中英

用於Web開發的Git-SVN - 如何做到這一點?

[英]Git-SVN for Web development — how to do it?

我們使用SVN進行工作。 我們是一個小型網頁設計工作室,我們用PHP編寫同時開發某種“框架”。

現在我們正在考慮一個更強大的解決方案,我們想嘗試git-svn。 我們使用分支作為不同的項目 - 一個分支,一個項目。 所以我的計算機中的結構與我的wwwroot結構完全相同。 一個分支=一個項目=一個虛擬主機。

當我玩git-svn時,我不知道如何用它來實現這個目標。 我需要將分支實際存在於文件系統中,因為我在Apache等中有virtulhosts。

你能給我一些建議或指點一些教程怎么做?

你做錯了。

說真的,分支是指分支。 您應該為不同的項目使用不同的存儲庫。

如果我做對了,你有一個你正在研究的框架,以及幾個基於該框架的項目。 無論您使用何種版本控制系統,都會轉換為框架的一個存儲庫,以及每個項目的一個存儲庫。

這就是git在工作副本中一次只顯示一個分支的原因。 您通常一次只在一個分支上工作。 如果需要擁有所有分支的工作副本,則每個分支需要一個工作副本。

時間向我們展示了最佳解決方案。

我們完全使用我們框架的新主要版本切換到git。 因此,基於舊版本的項目仍然通過SVN存儲庫進行維護,新開發在git中運行。

你可以用Git本身做類似的事情 - 參見Git子模塊

通過這種方式,您可以為每個項目提供整個“wwwroot”和子模塊的Git倉庫。 如果你只在幾個項目中工作,你可以分別檢查/克隆。

我從未發現git-svn是一個很好的解決方案。 我要么使用SVN,要么使用Git,而不是兩者。

剛剛從svn切換到Git,我同意上面的兩個答案。

我還建議不要使用git-svn(除了可能將現有的svn存儲庫導入Git,作為一次性單向事件)。 我還建議為每個項目使用單獨的Git存儲庫。

使用svn,有些人喜歡使用單個存儲庫,因為它更容易在項目之間共享代碼等。使用Git,您最好為所有共享資源使用單個額外的存儲庫; 如果某個項目中的某些事情開始並且您以后想要共享它,請將子樹合並(順便說一句,這是一個特別記錄的Git術語)合並到您的共享存儲庫中。 然后,您可以將代碼拉回到其他項目中。

正如其他人所說,使用單獨的存儲庫,而不是分支。

有了SVN,你可以......

http://svn/site_a/trunk/
http://svn/site_b/trunk/
etc

然后你可以單獨svn co http://svn/site_a/trunk/每個站點

使用git,您只需創建多個存儲庫:

mkdir site_a
cd site_a
git init
cd ../
mkdir site_b
cd site_b
git init

您可以擁有一個“主”存儲庫,每個站點都作為子模塊添加,但這不是git-submodule的用途,我發現它比它的價值更麻煩。

git-svn用於將SVN repo遷移到git,或者處理你無法控制的項目,這不是一個好主意。

如果你想使用gits分支(以及它的其他好處),為什么不完全切換到git? 您可以使用類似gitosis的東西,以類似SVN的集中式方式進行設置

基本上,如果你喜歡git,請切換到它(而不是使用git-svn )。 如果你正在尋找git只是為了分支,不要 - 將你的SVN存儲庫拆分成更小的項目( site_a/trunk/等)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM