2017-10-16 92 views
2

我剛開始使用GIT。考慮一個只有2個開發人員的非常小的團隊:devA和devB。如果有人在將我的工作合併到master但未推送後有人將新提交提交給git存儲庫主,我該怎麼辦?

下面是這種情況:

  1. 他們都在努力根據提交VER-01。
  2. DevA犯下了ver-02並被推到了中央回購站。
  3. DevB推送他/她的ver-03但失敗了,所以devB提取了master,現在有一個包含ver-03的master和包含ver02的origin/master。他/她將主人與原籍/主人合併,現在已經包含ver-02和ver-03的ver-04,然後通常將其推送到中央存儲庫。

我想知道的是,當DevB合併代碼時,DevA推送了另一個ver-05。因此,在DevB將他/她的主人與原籍/主人合併之後,他/她仍然不能推,因爲他/她必須解決ver-04和ver-05之間的衝突。如果我是DevB,我運行'git fetch origin master',但是我應該運行什麼命令來合併?我嘗試過'git merge origin master',但它告訴我'已經更新',但是當我推送失敗時。

我發現居然有3個分支:

  • 主 - >包含我的變化,這是VER-03
  • 產地/主 - >包含最新的遠程變化,這是版本-05
  • HEAD - > origin/master - >包含從ver-02和ver-03合併的ver-04。

接下來我該做什麼?

+1

嘗試'混帳merge'或'混帳取''或'git pull' –

+1

我肯定會建議你在做任何事情之前備份你的工作! – Matt

+2

'git pull origin master',修復衝突如果發生(然後提交),'git push origin master' –

回答

0

首先我想備份我的工作: git的結帳-b備份

移回主: git的結帳主從遠程

拉動和解決衝突: 混帳拉

推送更改: git push

我強烈建議您在分支機構上工作(並避免直接向主人推送t他):

git的結帳-b功能(創建新的分支,不結賬就可以了) 混帳推-u原點特徵(推分支遠程) git的承諾-am 「Commit1」

現在你有兩個選擇(你是在特性分支): git的重訂主 或 混帳合併主(如果你在這個分支獨自工作)(如果其他人使用該分支也)

化解矛盾

git結賬主(移動到主)

混帳合併功能(你的分支合併到主)

混帳推


如果你做了一個小的變化,掌握您可以:

混帳(把你的工作保存在存儲器中)

git pull(帶來遠程更改到本地)

git的藏匿應用(適用於遠程變化頂部更改)

化解矛盾

git的承諾-m 「消息」

混帳推

相關問題