2013-03-27 76 views
1

嗨,我剛剛通過GitHub Learn-in-15 minutes tutorial。 GitHub看起來非常好,並且容易拾取。我不明白的一件事是在團隊環境中與可能編輯相同文件的人一起工作?GitHub團隊使用

從我的理解

  • 會有一個遙控器回購(origin),其中包含應用程序的最新文件。
  • 每個團隊成員拉origin
  • 每個團隊成員都可以自己的本地編輯的創建分支的文件,提交這個分支,並與當地master合併。
  • 團隊成員現在可以將他們的master推送到origin/master

現在,如果2團隊成員不要編輯同一個文件會發生什麼。

產地V1

MemberA創建V2和推動 產地現在V2

MemberB仍然有V1,但取得了V3,並將其推 不會MemberA推變化回滾原來的V1,因爲

或者這是舞臺和添加文件的舞臺推動進場嗎?

IE它不與你推「替換」的所有文件..但只有那些你已經添加到您的舞臺/ COMMITED?

回答

4

如果試圖推到遠程(origin在你的例子)和遙控器上的文件,您試圖推比你推都將被拒絕之前已被更新。您必須先從遠端開始pull,然後才能解決衝突。

否則,如果不存在衝突,文件只是當一個人推到master更新。請記住,這裏有一個完整的過程。一個不會簡單地推動主:-)(或合併)。對不起,我不得不。

One does not not simply merge into master

簡單地說,如果你有機會到前推遙控器上的一個文件已被更新,那麼你將無法推動。如果您更改的文件未在遙控器上更改,您的推送將會成功。

一個基本的流程需要經常拉動你的分支,以保持它與主人保持同步。

+0

哈哈你是什麼意思theres awhole過程?那會是什麼? 另外,如果我們正在爲eclipse中的grails項目工作。我們是否需要手動將我們已經工作的文件添加到暫存區域,或者git是否會自動拾取已更改的文件?git狀態我認爲? – 2013-03-27 03:56:56

+0

最簡單的方法是,如果在有機會推送前遠程文件已經更新,那麼您將無法推送。如果您更改的文件未在遙控器上更改,您的推送將會成功。 當我拉到獲得最新版本...不會把它取代我所有的文件(一些編輯過的)與最新的拉... ...? – 2013-03-27 04:07:29

+0

不,它不會取代,但它會讓你知道衝突。它會在你身上解決這個衝突。 – AdamT 2013-03-27 04:11:53

0

Git是,它並不決定您的工作流程美妙 - 你花時間去通過測試並投入生產,通過從開發者的手指一個產品負責人的想法運行的步驟。相反,它只是確定跟蹤事物的方式。因此,你的過程可以是你想要的。有些人認爲這種開放性太侷限了 - 你如何擺脫空白頁?

Git-Flow是樹枝和分支,並通過各個階段跟蹤開發過程中合併的方法的命名約定。提供團隊合作所需的結構非常棒。它通常針對具體的定期發佈,因此對於一些發佈可能太多。

(還有對Git的流量here一個Git插件)。

如果Git的流量實在是太多了,你可能想看看GitHub Flow,用戶僅僅從主分支,打造功能,測試和合並回主。

最終,這些只是處理過程的慣例,您可以根據它們與團隊文化的匹配程度,採取儘可能多的或少量的或不採用的方式。