Git merge命令用法

2020-08-18 11:14 更新

git merge 是在 Git 中使用比較頻繁的一個(gè)命令,其主要用于將兩個(gè)或兩個(gè)以上的開(kāi)發(fā)歷史加入(合并)一起。本文就為大家?guī)?lái) git merge 命令的常見(jiàn)用法。


git merge三種語(yǔ)法:

git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
    [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
    [--[no-]allow-unrelated-histories]
    [--[no-]rerere-autoupdate] [-m <msg>] [<commit>…?]
git merge --abort
git merge --continue


git merge用途

git-merge 命令是用于從指定的 commit(s) 合并到當(dāng)前分支的操作。

注:這里的指定 commit(s) 是指從這些歷史 commit 節(jié)點(diǎn)開(kāi)始,一直到當(dāng)前分開(kāi)的時(shí)候。

1、用于 git-pull 中,來(lái)整合另一代碼倉(cāng)庫(kù)中的變化(即:git pull = git fetch + git merge)

2、用于從一個(gè)分支到另一個(gè)分支的合并


假設(shè)下圖中的歷史節(jié)點(diǎn)存在,并且當(dāng)前所在的分支為“master”:

1

那么 ?git merge topic? 命令將會(huì)把在 master 分支上二者共同的節(jié)點(diǎn)(E節(jié)點(diǎn))之后分離的節(jié)點(diǎn)(即 topic 分支的A B C節(jié)點(diǎn))重現(xiàn)在 master 分支上,直到topic分支當(dāng)前的 commit 節(jié)點(diǎn)(C節(jié)點(diǎn)),并位于master分支的頂部。并且沿著 master 分支和 topic 分支創(chuàng)建一個(gè)記錄合并結(jié)果的新節(jié)點(diǎn),該節(jié)點(diǎn)帶有用戶描述合并變化的信息。

即下圖中的H節(jié)點(diǎn),C 節(jié)點(diǎn)和 G 節(jié)點(diǎn)都是 H 節(jié)點(diǎn)的父節(jié)點(diǎn)。

2


git merge <msg> HEAD <commit>...命令

該命令的存在是由于歷史原因,在新版本中不應(yīng)該使用它,應(yīng)該使用git merge -m <msg> <commit>....進(jìn)行替代


git merge --abort命令

該命令僅僅在合并后導(dǎo)致沖突時(shí)才使用。git merge --abort 將會(huì)拋棄合并過(guò)程并且嘗試重建合并前的狀態(tài)。但是,當(dāng)合并開(kāi)始時(shí)如果存在未 commit 的文件,git merge --abort在某些情況下將無(wú)法重現(xiàn)合并前的狀態(tài)。(特別是這些未 commit 的文件在合并的過(guò)程中將會(huì)被修改時(shí))

警告:

運(yùn)行 git-merge 時(shí)含有大量的未 commit 文件很容易讓你陷入困境,這將使你在沖突中難以回退。因此非常不鼓勵(lì)在使用 git-merge 時(shí)存在未 commit 的文件,建議使用 git-stash 命令將這些未 commit 文件暫存起來(lái),并在解決沖突以后使用 git stash pop 把這些未 commit 文件還原出來(lái)。


以上就是 Git merge 命令的一些常見(jiàn)用法,希望對(duì)大家有所幫助。想要了解更多 Git 命令,可點(diǎn)擊:Git 常用命令速查表


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)