簡體   English   中英

使用git作為更好的SVN

[英]Using git as a better SVN

我們是一家SVN商店 - 現在我們使用git(所有很酷的孩子都在這里)。

每個開發人員在處理新功能時都會在自己的git樹上本地檢查代碼。 當一些工作准備好提交到主存儲庫時,我們在每個項目的共享驅動器上都有一個目錄。 然后,我們對該repo執行git push ,並使用git syncgit pull來從“one true source”更新單個dev機器。

當有人推送到存儲庫時,我們遇到了一個意外,並以某種方式設法用dev機器版本的自己的git樹替換主要的repo。

這是最好的'git'做事方式嗎?

我們在兩個站點上,但共享目錄很常見。 少數開發人員通常可以避免代碼區域發生重大沖突。 所有在Windows上,使用TortoiseGit,安全性並不太重要,但我們沒有管理員支持,因此復雜的服務器解決方案已經淘汰。

Git非常強大。 它是分發的,但如果你願意,不會限制你成為一個集中的。

與svn tho'不同,設置自己的約定和做事方式非常重要。

下圖將說明一個非常好的模型 在此輸入圖像描述

來自流行的git分支模型

在下面的鏈接中查看工作流程,我的偏好是集成管理器工作流程(類似於@ simon的第二個選項),並與github的模型相關: http//progit.org/book/ch5-1.html

使用git的兩種常用方法是:

  • 所有開發者都從中央倉庫撤出並推送到中央倉庫(正如您現在所做的那樣)

  • 每個開發者都有一個私人回購和一個公共回購。 他從其他公共回購中掏出他想要的東西,只推到他自己的公共回購中。

如果您選擇第二個選項並且您的代碼不必是私有的,您可以使用github來簡化您的生活。

在我們的項目中,我們有一個中央服務器,它有一個gitosis管理的存儲庫,有幾個分支。 從那里開始,每個開發人員都會對要處理的分支進行最新更改,進行自己的更改,在本地提交以及何時可編譯和測試(如果可能)再次拉動(合並任何更改)並推送。

通常,沒有太多中斷的小功能直接在主分支中進行,而更大的更改首先在它們自己的分支上完成(這可能由多個開發人員以這種方式共享)。

完成使用后不要忘記刪除分支,否則會讓人感到困惑。 我實際上有一個名為branches的特殊分支,它跟蹤git merge -s ours ...在其決定點(分支,合並,結束)引用所有其他分支,所以即使我刪除了一個沒有真正合並的分支(例如,因為我決定不去這條路線,或者它只是一些尋找錯誤的分支),我仍然有一個參考它,並可以在必要時恢復它。

暫無
暫無

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

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