2016-02-17 115 views
0

我目前正在開發團隊,這是分裂的個人或小團體正在完全獨立的功能,使用git作爲版本控制。我們有一箇中央分支(中繼),偶爾會更新爲重構或合併功能。Git中央分支開發

無論是通過缺乏適當的行話或理解,我一直無法找到一種方法來完成以下任務:我們希望中央幹線「自動」將其更新過濾到開發分支中,而不必重新分支每次更新後。如果一個功能分支被合併到中央,它應該成爲所有其他當前開發分支的一部分。

在我看來,這似乎是一種常見而容易的事情。如果是這樣,有人可以提出一種做法嗎?如果它不常見(或可能),請說明爲什麼這被認爲是不好的做法。

回答

1

不自動執行此操作的原因是更改不能保證兼容。如果您想從主變更整合的特性分支可以使用

git merge master 

,可以被認爲是「窮實踐」只有部分是在軟件開發中,你應該保持每個功能小,自給。也許更好的方法是將每個功能分成許多更小的功能?

+0

我試着運行這與我自己的功能分支簽出,它只是說「已經最新」。但是,沒有任何更改會反映出來,並且日誌中沒有提及有關主控更改的任何信息。 – frog

+0

你有本地副本/主幹嗎? – Massey101

+0

@frog,如果你的主分支叫做'trunk',那麼嘗試'git fetch',然後'git merge origin/trunk'。 –

1

你肯定誤解的東西,或者至少你使用Git工作時,有很多人的缺少一個關鍵部分:a workflow.

默認情況下,Git不會做任何形式的自動合併任何如果沒有人的指導,那麼肯定Git做的是正確的事情。爲了合併,您必須手動運行這些命令,並且良好的代碼衛生意味着您將針對該合併運行集成/單元測試,以確保沒有任何設備可以中斷。

很多可以被自動化,但是Git並沒有爲你自動開箱即用。

上面的鏈接爲您提供了有關不同類型工作流程的一些見解,但請記住,有很多,並且它們可能並不適用於您和您的情況。

,當涉及到確保每一個分支是最新的,具有碩士,我會給你一些建議:

  • 的開發分支上的工作是負責確保他們的代碼是最新的。
  • 因爲您避免了大量無意義且毫無意義的合併,因此將主代碼與主代碼合併比將代碼合併到主代碼分支更爲可取。
  • 不要簡單地讓工具做所有的事情;你也必須不時地在人類層面進行干預。
+0

非常感謝您的迴應,真誠!當我說'自動'時,我可能誤導了 - 我的意思是,只要運行'git pull'就會注意到主幹是否有新的更新。關於Atlassian鏈接,這是一個非常棒的資源,但是當所有術語聽起來與外行人相同時,文章的長度可能會令人感到恐懼。 – frog