-

git merge 是在 Git 中使用比较频繁的一个命令,其主要用于将两个或两个以上的开发历史加入(合并)一起。本文就为大家带来 git merge 命令的常见用法。


git merge三种语法:

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) 合并到当前分支的操作。

注:这里的指定 commit(s) 是指从这些历史 commit 节点开始,一直到当前分开的时候。

1、用于 git-pull 中,来整合另一代码仓库中的变化(即:git pull = git fetch + git merge)

2、用于从一个分支到另一个分支的合并


假设下图中的历史节点存在,并且当前所在的分支为“master”:

1

那么 git merge topic 命令将会把在 master 分支上二者共同的节点(E节点)之后分离的节点(即 topic 分支的A B C节点)重现在 master 分支上,直到topic分支当前的 commit 节点(C节点),并位于master分支的顶部。并且沿着 master 分支和 topic 分支创建一个记录合并结果的新节点,该节点带有用户描述合并变化的信息。

即下图中的H节点,C 节点和 G 节点都是 H 节点的父节点。

2


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

该命令的存在是由于历史原因,在新版本中不应该使用它,应该使用git merge -m <msg> <commit>....进行替代


git merge --abort命令

该命令仅仅在合并后导致冲突时才使用。git merge --abort 将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时如果存在未 commit 的文件,git merge --abort在某些情况下将无法重现合并前的状态。(特别是这些未 commit 的文件在合并的过程中将会被修改时)

警告:

运行 git-merge 时含有大量的未 commit 文件很容易让你陷入困境,这将使你在冲突中难以回退。因此非常不鼓励在使用 git-merge 时存在未 commit 的文件,建议使用 git-stash 命令将这些未 commit 文件暂存起来,并在解决冲突以后使用 git stash pop 把这些未 commit 文件还原出来。


以上就是 Git merge 命令的一些常见用法,希望对大家有所帮助。想要了解更多 Git 命令,可点击:Git 常用命令速查表