2012-02-08 91 views
2

可能重複:
master branch and 'origin/master' have diverged, how to 'undiverge' branches'?好的和清楚的瞭解git分支的分歧問題?

我一派,看了很多帖子,但沒有可以讓我瞭解分支發散問題呢。

如果我遠程跟蹤分支,我常常陷入如下:

$ git status 
# On branch feature/worker-interface 
# Your branch and 'origin/feature/worker-interface' have diverged, 
# and have 1 and 4 different commit(s) each, respectively. 

誰能有什麼好和明確的建議或點到好崗位關於這個混帳問題?

回答

1

首先,您可以使用cherry命令查看分支之間哪些提交有所不同,以及以何種方式。因此,在這種情況下,運行git cherry origin/feature/worker-interface向我們展示了當前分支上的提交狀態以及它們如何與origin/feature/worker-interface進行堆疊。 你會發現1個你忘記提交的回購。

現在,讓我們看看什麼用「原點/特徵/工人接口」及其commits.For發生這一點,我們可以運行一個特殊格式git log ..origin/feature/worker-interface --oneline

這裏一個日誌命令,我們看到4個提交該不要在我們當前的分支中退出

所以,現在我們對發生了什麼有了一個好主意。你已經在你的本地主分支上進行了1次提交,看起來你還沒有合併過origin/feature/worker-interface上的4次提交。所以,你可以盲目地將事情合併在一起並繼續前進(如果它們沒有衝突地合併),但我想告訴你如何以更受控制的方式處理它。

  1. 首先,創建一個指向當前的HEAD分支:git checkout -b local_changes
  2. 現在,我們有保留的這些變化軌跡,我們切換回功能/工人接口:git checkout feature/worker-interface
  3. 在這個點,重置特性/工作接口分支以擺脫1提交。
  4. 你走了!你可以檢查你的分支git status的狀態,你會被提示爲沒有提交