2016-12-02 61 views
2

假設我有兩個分支,一個新功能和另一個測試。Git - 合併到未更新的分支中

我想合併測試分支中的新功能。問題在於我的本地版本的測試分支沒有更新最後的更改,我忘了在合併新功能之前更新它。

發生了什麼事是這樣的:

  • 的Git合併了新的功能在我的測試分支的本地版本。
  • 當我推動合併類似於另一個合併發生的事情,我認爲與遠程更改。

我認爲在推送過程中發生了合併,因爲現在我在測試分支中有遠程更改。

是否有可能或發生了其他事情?

我現在的情況是我不確定測試分支中究竟有什麼。基本上我不知道這個錯誤涉及到什麼。

我不確定我是否理解發生了什麼事情,所以我想讓你更好地理解發生了什麼事情,以及如何解決這個問題。

+0

合併時,你推從未發生過,因爲就沒有解決可能發生的衝突的方式。你現在有什麼特別的問題嗎? – zoul

+0

好吧,那麼爲什麼我現在在我的分支的遠程更改?基本上我不知道我在測試分支... – Giordano

回答

0
  • 你已經在test分支機構本地[在第一子彈提到]合併new merge,所以現在你已經new feature + test分支更改/犯test分支。

  • 現在,當你正在推動test分支機構,遠程test分支也會有new feature + test分支更改/犯remote/test分公司。

+0

那麼,根據你的第二點,一切都應該沒問題?如果不幸的是,在推動過程中,我與遠程更改發生衝突會發生什麼? – Giordano

+0

是的,沒關係。當你完成'test'分支時,你需要在你的'local test'分支中拉出'remote master',如果發生了conflits,那麼修正它('test branch')。現在創建拉取請求並將「test」與主數據庫合併。完成! –

0

在推送更改之前,您可能已執行了git pull origin test(它將測試分支的遠程更改集成到本地測試分支中)。如果test分支發生了一些變化,那麼您會從git收到消息:

由於遠程包含您本地沒有的工作,所以更新被拒絕。這通常是由另一個存儲庫推向相同的參考文件引起的。在再次推送之前,您可能需要首先整合遠程更改(例如,'git pull ...')。

0
  • local test不會更新與remote test分支。說,local test包含承諾Aremote test包含承諾A & B

    local test: A 
    remote test: A -> B 
    
  • 合併feature分支local test。說,功能包含提交P

    local test: A -> P 
    remote test: A -> B 
    
  • 如果你想推local test你應該面對這樣的錯誤your test branch is behind origin/test

  • 拉出remote test分成local test分支。

    $ git pull origin test 
    
    local test: A -> B -> P 
    remote test: A -> B 
    
  • local test

    local test: A -> B -> P 
    remote test: A -> B -> P