合并提交
-
先創(chuàng)建多個(gè)commit
> git log --oneline 90e96fc (HEAD -> build-dev) 添加 func3 方法 0ac391c 添加 func2 方法 e828a9d 添加 func1 方法 ce801b5 (master) 合并5個(gè)提交
-
進(jìn)行合并命令,合并 ce801b5 (合并5個(gè)提交) 之后的提交
> git rebase -i ce801b5 pick e828a9d 添加 func1 方法 pick 0ac391c 添加 func2 方法 pick 90e96fc 添加 func3 方法 # 變基 ce801b5..90e96fc 到 ce801b5(3 個(gè)提交) # # 命令: # p, pick <提交> = 使用提交 # r, reword <提交> = 使用提交重付,但修改提交說(shuō)明 # e, edit <提交> = 使用提交,進(jìn)入 shell 以便進(jìn)行提交修補(bǔ) # s, squash <提交> = 使用提交,但融合到前一個(gè)提交 # f, fixup <提交> = 類似于 "squash"凑保,但丟棄提交說(shuō)明日志 # x, exec <命令> = 使用 shell 運(yùn)行命令(此行剩余部分) # b, break = 在此處停止(使用 'git rebase --continue' 繼續(xù)變基) # d, drop <提交> = 刪除提交 # l, label <label> = 為當(dāng)前 HEAD 打上標(biāo)記 # t, reset <label> = 重置 HEAD 到該標(biāo)記 # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>] # . 創(chuàng)建一個(gè)合并提交计技,并使用原始的合并提交說(shuō)明(如果沒(méi)有指定 # . 原始提交晒衩,使用注釋部分的 oneline 作為提交說(shuō)明)嗤瞎。使用 # . -c <提交> 可以編輯提交說(shuō)明。 # # 可以對(duì)這些行重新排序浸遗,將從上至下執(zhí)行。 # # 如果您在這里刪除一行箱亿,對(duì)應(yīng)的提交將會(huì)丟失跛锌。 # # 然而,如果您刪除全部?jī)?nèi)容,變基操作將會(huì)終止髓帽。 # # 注意空提交已被注釋掉
-
修改信息菠赚,把后面兩個(gè)合并到第一個(gè),形成新的提交郑藏, squash 表示保存修改衡查,放到第一個(gè)提交里,wq保存
pick e828a9d 添加 func1 方法 squash 0ac391c 添加 func2 方法 squash 90e96fc 添加 func3 方法
-
修改提交備注
# 這是一個(gè) 3 個(gè)提交的組合必盖。 # 這是第一個(gè)提交說(shuō)明: 添加 func1 方法 # 這是提交說(shuō)明 #2: 添加 func2 方法 # 這是提交說(shuō)明 #3: 添加 func3 方法 # 請(qǐng)為您的變更輸入提交說(shuō)明拌牲。以 '#' 開(kāi)始的行將被忽略,而一個(gè)空的提交 # 說(shuō)明將會(huì)終止提交歌粥。
修改為以下塌忽,wq保存
合并三個(gè)請(qǐng)求 # 請(qǐng)為您的變更輸入提交說(shuō)明。以 '#' 開(kāi)始的行將被忽略失驶,而一個(gè)空的提交 # 說(shuō)明將會(huì)終止提交土居。
-
最終效果
d57f985 (HEAD -> build-dev) 添加 func1 方法 ce801b5 (master) 合并5個(gè)提交 ----- 以前樣子 ----- 90e96fc (HEAD -> build-dev) 添加 func3 方法 0ac391c 添加 func2 方法 e828a9d 添加 func1 方法 ce801b5 (master) 合并5個(gè)提交
變基
-
目的在于保持提交歷史的整潔
在當(dāng)前buid-dev分支進(jìn)行拉取master分支提交記錄,找到共同的父提交
build-dev分支 d57f985 (HEAD -> build-dev) 添加 func1 方法 ce801b5 合并5個(gè)提交 master分支 0d59544 (HEAD -> master) 修改dev為master方法 ce801b5 合并5個(gè)提交
執(zhí)行命令
// 拉取master的提交記錄進(jìn)行合并 > git rebase master // 效果 d90494f (HEAD -> build-dev) 添加 func1 方法 0d59544 (master) 修改dev為master方法 ce801b5 合并5個(gè)提交
執(zhí)行命令
// 切換主分支 > git checkout master // 進(jìn)行合并 > git merge build-dev // 查看效果 > git log --oneline d90494f (HEAD -> master, build-dev) 添加 func1 方法 0d59544 修改dev為master方法 ce801b5 合并5個(gè)提交