搜尋

首頁  >  問答  >  主體

開放原始碼 - github,merge後我的fork自動ahead於‘主幹’1commit

我從A(主幹)fork的,一段時間後我的fork behind於A,然後create pull request,然後在我的fork這裡merge,之後我的fork就會自動ahead於A 1 個commit。 。 。

有沒有人遇到跟我一樣的github問題,,,怎麼辦能自然同步於A

怪我咯怪我咯2807 天前766

全部回覆(2)我來回復

  • 黄舟

    黄舟2017-04-28 09:06:59

    只要不是fast-forward,pull之後會自動merge,而每次merge就會產生一個commit記錄。

    解決方法:

    1. 假如你的repo只是晚於主幹,沒有不一樣的commit,那麼就是fast-forward。这时候先pull。這時候先pull到本地上來,跟本地的內容merge在一起。這種情況不會產生額外的commit記錄。然後再將本機程式碼push到自己的遠端repo上。

    2. 如果不滿足fast-forward条件,那么需要pull --rebase到本地,并完成rebase操作。成功后再push條件,那麼需要pull --rebase到本地,並完成rebase操作。成功後再push到遠端repo。

    附: 一份關於「如何 ~~變基~~ rebase」的資料: https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-04-28 09:06:59

    所以你要用rebase…

    如果你在自己的分支上什麼也沒乾,那麼無論是rebase還是merge之後你的分支就和A的head是一樣的,沒有多一個commit。
    當然如果你自己改了什麼東西,那就怎麼也不可能完全同步了,不然你還要版本控制系統乾神馬。
    但rebase和merge的差別就是,merge在這一點會創造一個新的change,rebase只是把你在這個分支上的變化歷史接在A的歷史後面,沒有新的changelog。

    回覆
    0
  • 取消回覆