Git常用命令merge

这篇具有很好参考价值的文章主要介绍了Git常用命令merge。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git常用命令merge

1、merge

分支合并

# 合并指定分支到当前分支
$ git merge branch
# 可能出现冲突,这时候就需要你修改这些文件来手动合并这些冲突
# 改完之后,你需要执行如下命令以将它们标记为合并成功
$ git add filename
# 合并远程master分支至当前分支
$ git merge origin/master

git 一般有以下三种 merge 方式:

  • fast-forward
  • no fast forward
  • squash

git merge 默认使用的 fast-forward 的合并方式。

1.1 fast-forward

fast-forward:会在当前分支的提交历史中添加进被合并分支的提交历史。git 直接把 HEAD 指针指向合并分支的

头,完成合并。属于快进方式,不过这种情况如果删除分支,则会丢失分支信息,因为在这个过程中没有创建

commit。

$ git merge branch
# 等价于
$ git merge branch --ff
# master分支
touch a.txt
git add a.txt
git commit -m "add a.txt"

touch b.txt
git add b.txt
git commit -m "add b.txt"

touch c.txt
git add c.txt
git commit -m "add c.txt"

$ git log --oneline
0786621 (HEAD -> master) add c.txt
555418e add b.txt
dbc2292 add a.txt
# branch1分支
$ git checkout -b branch1 

echo a > a.txt
git add a.txt
git commit -m "update a.txt"

echo b > b.txt
git add b.txt
git commit -m "update b.txt"

echo c > c.txt
git add c.txt
git commit -m "update c.txt"

$ git log --oneline
d5a7969 (HEAD -> branch1) update c.txt
fe86d72 update b.txt
f1f9f3d update a.txt
0786621 (master) add c.txt
555418e add b.txt
dbc2292 add a.txt
$ git merge branch1
Updating 0786621..d5a7969
Fast-forward
 a.txt | 1 +
 b.txt | 1 +
 c.txt | 1 +
 3 files changed, 3 insertions(+)
 
$ git log --oneline
d5a7969 (HEAD -> master, branch1) update c.txt
fe86d72 update b.txt
f1f9f3d update a.txt
0786621 add c.txt
555418e add b.txt
dbc2292 add a.txt

1.2 no fast forward

$ git merge branch --no-ff

–no-ff 表示禁用 fast forwad,之后查看日志时是可以看到已被删除分支的信息。

指的是强行关闭 fast-forward 方式,会创建一个新的 commit。

–no-ff 会生成一个新的提交,让当前分支的提交历史不会那么乱。

$ git merge branch1 --no-ff
Merge made by the 'recursive' strategy.
 a.txt | 1 +
 b.txt | 1 +
 c.txt | 1 +
 3 files changed, 3 insertions(+)

Git常用命令merge

$ git log --oneline
09ccaae (HEAD -> master) Merge branch 'branch1'
d5a7969 (branch1) update c.txt
fe86d72 update b.txt
f1f9f3d update a.txt
0786621 add c.txt
555418e add b.txt
dbc2292 add a.txt

1.3 squash

$ git merge branch --squash

–squash:不会生成新的提交,会将被合并分支多次提交的内容直接存到工作区和暂存区,由开发者手动去提

交,这样当前分支最终只会多出一条提交记录,不会掺杂被合并分支的提交历史。文章来源地址https://www.toymoban.com/news/detail-473732.html

$ git merge branch1 --squash
Updating 0786621..d5a7969
Fast-forward
Squash commit -- not updating HEAD
 a.txt | 1 +
 b.txt | 1 +
 c.txt | 1 +
 3 files changed, 3 insertions(+)
$ git log --oneline
0786621 (HEAD -> master) add c.txt
555418e add b.txt
dbc2292 add a.txt

zhangshixing@DESKTOP-CR3IL33 MINGW64 ~/Desktop/test/u3 (master)
$ ls
a.txt  b.txt  c.txt

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   a.txt
        modified:   b.txt
        modified:   c.txt


$ cat a.txt
a

$ cat b.txt
b

$ cat c.txt
c
$ git add a.txt b.txt c.txt

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   a.txt
        modified:   b.txt
        modified:   c.txt


$ git commit -m "update a.txt | update b.txt | update c.txt"
[master b34e050] update a.txt | update b.txt | update c.txt
 3 files changed, 3 insertions(+)

$ git log --oneline
b34e050 (HEAD -> master) update a.txt | update b.txt | update c.txt
0786621 add c.txt
555418e add b.txt
dbc2292 add a.txt

$ git status
On branch master
nothing to commit, working tree clean

到了这里,关于Git常用命令merge的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git从其他分支merge个别文件,部分合并文件

    简介 git 使用的过程中,有时候我们可能会有这样的需求, 别的分支上有部分文件是我们当前分支需要的,但是如果使用常规的merge,就会将别的分支的内容全部合并过来,这不是我们想要的,下面简单介绍一个小技巧可以实现只合并指定的文件。 场景一 目前有master 和 dev

    2024年02月07日
    浏览(57)
  • git merge:要将一个分支的代码合并到另一个分支

    在Git中,要将一个分支的代码合并到另一个分支,可以使用git merge命令。以下是将v6 分支的代码合并到v6.1分支的基本步骤: 确保在目标分支上: 在执行合并之前,请确保你在目标分支(v6.1)上。可以使用以下命令切换到目标分支: 拉取最新代码: 为了避免合并冲突,确保

    2024年04月15日
    浏览(60)
  • gitlab 合并代码分支 Merge 按钮灰掉了,无法合并代码, git merge --no-ff 的作用

    提交的分支无法合并,用 git merge --no-ff 合并。 在 gitlab 上合并分支代码的时候,因为自己就是管理员,有时候提交代码,准备合并的时候会发现无法合并成功。网页上 Merge 按钮灰掉了,出现提示 : 点击 “Resolve locally” 按钮: 按照上图完成 Step3 然后本地修改完冲突,提交

    2024年02月03日
    浏览(54)
  • git整合分支的两种方法——合并(Merge)、变基(Rebase)

    问题描述: 初次向git上传本地代码或者更新代码时,总是会遇到以下两个选项。有时候,只是想更新一下代码,没想到,直接更新了最新的代码,但是自己本地的代码并没有和git上的代码融合,反而被覆盖了。 解决办法: 当我们从git上更新代码时,选择“在传入变基当前分

    2024年04月28日
    浏览(53)
  • git diff两个分支有差异git merge却显示没有可以合并的内容

    problem: 用git diff可以发现两个分支还是有很多不一样的地方,可用git merge显示not something we can merge 输入gitk查看,发现preview已经在这个分支前面了。。。虽然不太懂,但这样是没办法将preview合并当前分支的,只能这个分支合并preview。。。 解决:因为也不会别的解决方法,因

    2024年02月12日
    浏览(51)
  • Git分支的合并策略有哪些?Merge和Rebase有什么区别?关于Merge和Rebase的使用建议

    参考:《Git 权威指南》、《Git团队协作》、快手git管理 (1)工作区域 首先来介绍介绍下Git的工作区域,分为 工作区 、 暂存区 和 仓库区 ,每个区域的转换关系如上图所示。 工作区(workspace) :就是我们平时本地存放项目代码的地方; 暂存区(index/stage) :用于临时存放

    2024年02月04日
    浏览(63)
  • Git进阶之代码回滚、合并代码、从A分支选择N次提交,合并到B分支【revert、merge、rebase、cherry-pick】

    B站视频地址: https://www.bilibili.com/video/BV1KX4y1a7N9 Git学习文档:https://d9bp4nr5ye.feishu.cn/wiki/PeDPw3mm3iFA36k9td9cVeignsZ 在很长一段时间里,我对Git的操作只限于:提交代码,拉取代码,合并代码。 虽然上面这些操作在日常工作中也足够了,但不会点高级知识不利于装X,今天我们来学

    2024年02月08日
    浏览(80)
  • git merge合并分支代码# Please enter a commit message to explain why this merge is necessar У git退出编辑信息

    git合并代码遇到问题(一般都是正常的合并行为在MacBook上面出现操作) 首先输入完git merge 分支名 后会出现这样的提示,先说流程,再说原因 ①:出现上图提示后,英文状态下按 i 键,这时候会进入insert(插入)模式; ②:然后就可以输入提交信息了,可以把第一行删除,

    2024年02月09日
    浏览(45)
  • Git常用命令merge

    分支合并 git 一般有以下三种 merge 方式: fast-forward no fast forward squash git merge 默认使用的 fast-forward 的合并方式。 1.1 fast-forward fast-forward:会在当前分支的提交历史中添加进被合并分支的提交历史。git 直接把 HEAD 指针指向合并分支的 头,完成合并。属于快进方式,不过这种情

    2024年02月08日
    浏览(27)
  • git 常用命令 Merge

    在 本地release分支 执行 git merge 时,git会把 refs/remotes/origin/release分支 合并到 refs/heads/release分支 上 Further Reading : Git常用命令汇总

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包