首頁  >  問答  >  主體

git-gui - gitlab 如何跨分支merge?

現在我的同事A起了一個項目,分之為A,裡面有一些說明和common.css等組件;
然後B同事新建分之B,
C同事在本地切換到B分之並創建C分之
接著B,C同事分別在各自的分支開發
開發完畢並且推送到遠端,需要將專案內容合併到一個分支

問題1:能否將B分支合併到C分支或C分支合併到B分支?

問題2:能都將B、C分支均合併到A分支?

問題3:merge to working tree和fast-forward merge有何不同?

另外,不希望rebase。
高洛峰高洛峰2727 天前725

全部回覆(6)我來回復

  • 某草草

    某草草2017-05-02 09:49:26

    難道你們都沒有一個公共的dev開發分支嗎?
    從dev上各自拉個開發分支,開發完了,大家都往dev上合併。
    有衝突解決衝突。

    回覆
    0
  • 高洛峰

    高洛峰2017-05-02 09:49:26

    首先, 原生的git是支援分支的新建與合併的1, 所以所有基於git實現的程式碼版本管理工具(如gitlab/github)也是預設支援分支功能的. (gitlab還會帶有權限管理功能)

    此外, 題主項目中的一個重大問題正如@52lidan所說, 沒有dev分支導致代碼版本管理混亂(到底是A還是B還是C分支是最主要的?), 所以給題主的建議是:

    1. 專案要有以下的分支

      • master: 正式可以發佈到生產環境的程式碼分支(protected)2

      • dev: 經過開發與初步測試後, 可以正常工作的程式碼分支, 用以合併所有人的工作以及已經修復的bug(protected)

    2. 每一個任務新建一個分支, 人跟著任務走而不是任務跟著人走. 也就是說, 在遠程庫上, 該任務只有一個分支, 並且所有人都拉取到本地上. 所有人關於任務的工作都需要在本地commit後再推送到任務分支. (不建議一個任務有多於三人協作, 否則分解任務為更多的分支)


    1. git分支的新建與合併 ↩
    2. gitlab中可以將分支設定為protected, 該分支只有專案中獲得owner/protected, 该分支只有项目中获得owner/master权限的人才能合并别人提交的merge request權限的人才能合併別人提交的merge request

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-02 09:49:26

    不是很理解題主的意思,合併本身就是在不同分支間進行的,何來跨分支不能合併之說。

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-02 09:49:26

    就算合併有個先來後到,如果就是在本地開發完了也不進行遠端的推送更新,怎麼存在合併的情況呢,至少遠端也應該有個b吧,如果沒有,那都往a上合併吧,不過這樣不太好

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-02 09:49:26

    分支肯定有分叉點的,距離分叉點越遠理論上不一致性更大,合併越需要人為幹預,不存在人為幹預都合併不了的分支

    回覆
    0
  • 迷茫

    迷茫2017-05-02 09:49:26

    問題1:能
    問題2:能
    問題3:不知道

    回覆
    0
  • 取消回覆