分支merge操作​

QuibblerQuibbler 2022-07-10 约 4 分钟 1770 次阅读

分支merge操作

通常dev开发分支合格上线之后,就要合入到master主线分支。

可以用cherry-pick的方式,将dev分支上的提交依次cherry-pick到master分支再合入。但不提倡这种方式,不仅费时费力还容易遗漏提交。

git提供了合并分支的merge操作,将两个或多个开发历史合并到一起。

        merge命令有许多可选项,记不住很正常,真到需要用的时候,用git help merge在浏览器打开此命令的详细文档。

git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
	    [--no-verify] [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
	    [--[no-]allow-unrelated-histories]
	    [--[no-]rerere-autoupdate] [-m <msg>] [-F <file>]
	    [--into-name <branch>] [<commit>…]
    git merge (--continue | --abort | --quit)

合并分支的merge操作很方便,举个例子。代码仓库中有两个分支:master和dev。在执行操作之前之前先pull一下,将本地代码更新至最新,对开发来说这是一个比较好的习惯。

git pull --rebase

先checkout切换到master分支,即需要合入的目标分支:

git checkout master

在master分支下执行下面的命令,参数为待合入分支名dev,将另外一个分支dev中的提交合入当前的master分支:

git merge dev

有冲突的话需要先处理冲突,最后生成一笔merge提交,只需要合入这一个提交即可把dev分支中的提交都合入master分支。如果遇到无法merge的情况,可以尝试加上--no-ff参数创建合并提交。

对merge命令印象深刻的一次:曾经有dev1和dev2两个开发分支并行开发。dev2先开发完,于是将其merge到dev1上;后来又将dev1分支开发的功能merge到了dev2上;这样反复横跳,最后没有merge可merge(这是及其不规范的操作)。

相关资料:

        git-scm.com/docs/git-merge

        git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging

相关推荐

git rebase调整commit提交的顺序
Git

git rebase调整commit提交的顺序

git rebase调整commit之间顺序一连提交了几笔commit,想调整一下顺序,把其中一笔提交置顶拿到最前面来,专门修改这一笔提交。当然如果想修改某一笔提交,可以reset到那笔commit,进行修改,完成之后再把之后的提交cherry-pick回去。git log查看提交记录,每笔提交记录太多,可以让每笔提交仅显示一行查看 --oneline。使用git rebase -i进入编辑,之前

1.4w
git blame:显示文件的每行提交记录信息
Git

git blame:显示文件的每行提交记录信息

git blame:显示文件的每行提交记录信息git blame对文件的每行信息都进行注释。能看到关于该行修改的每一次commit的哈希标签、作者和提交日期。Intellij IDEA在打开文件的行数右键点击Annotate显示文件每一行的记录信息。应该用的就是这个命令实现的功能。

5.5k
Git可视化工具:Sublime Merge
Git

Git可视化工具:Sublime Merge

Git可视化工具:Sublime Merge同事推荐了一个Git 可视化客户端:Sublime Merge ,由知名文本编辑器 Sublime Text 开发商打造。自己平时用的则是最好用的Git GUI工具:SourceTree,也体验了下Sublime Merge,用起来还不错。直接点击下载或购买后,安装即可。功能免费,完整功能无限制使用。但是订阅内容(比如更换主题)付费。Sublime Me

2.8k