美文网首页
真香:git merge 与 git cherry-pick 命

真香:git merge 与 git cherry-pick 命

作者: 狄仁杰666 | 来源:发表于2021-08-11 23:00 被阅读0次

    前言

    来啦老铁!

    今天咱们简单学2个 git 命令,这2个命令是我以前几乎没用过的,近期用得比较频繁,而且觉得很香的命令,他们就是:

    • git merge 命令;
    • git cherry-pick 命令;

    1. git merge 命令;

    • 背景;

    笔者比较菜,以往合并分支都是在 git 远程仓库上发起 pull request,然后在远程仓库进行 merge的,这样有一个坏处是远程仓库上会多出很多这方面的 pull request 记录;

    • 认识 git merge 命令;

    经过一些查阅,发现了 git merge 命令,可以很好的解决这个问题,我们以 master 分支 merge 到 feature/dylan_test 分支为例,命令如下:

    # 同步分支信息
    git checkout master
    git pull
    git checkout feature/dylan_test
    git pull
    # 合并master分支到当前分支
    git merge master
    # 将合并分支产生的结果推送到远程仓库
    git push
    

    git merge 命令还可以带上信息,如:

    git merge -m "fix: 同步master分支信息" master
    

    这样就不需要在远程仓库操作,也不会多出 pull request 操作了,一个字,真香啊~

    2. git cherry-pick 命令;

    • 背景;

    笔者同样比较菜,在遇到一个分支上有多个 commit,但由于某些原因,想把该分支的部分 commit 先提交,merge 到 master 分支,在过往,这种工作通常是重复做的,十分浪费时间,而且很容易改错改漏,经过同事的指点,发现了 git cherry-pick 这个真香命令;

    • 认识 git cherry-pick 命令;

    假设我们有2个分支,分别为:feature/dylan_test_a 和 feature/dylan_test_b,feature/dylan_test_a 上有多个 commit ,其中有2个 commit,其 commit sha 分别为 xxxxx 和 yyyyy 希望先通过 feature/dylan_test_b 分支 merge 到 master 分支,那么命令如下:

    # 切换到要增加新 commit 的分支;
    git checkout feature/dylan_test_b
    # 复制指定的 commit xxxxx 到当前分支;
    git cherry-pick xxxxx
    # 复制指定的 commit yyyyy 到当前分支;
    git cherry-pick yyyyy
    # 推送 feature/dylan_test_b 分支的新改动 xxxxx 和 yyyyy 包含的改动到远程分支;
    git push
    
    • 复制多个 commit 还可以这么做:
    1. 复制xxxxx、yyyyy、zzzzz 这三个 commit;
    git cherry-pick xxxxx yyyyy zzzzz
    # 注意:commit 间是一个空格;
    
    1. 复制xxxxx、zzzzz 居于 xxxxx 和 zzzzz commit 的所有 commit;
    git cherry-pick xxxxx..zzzzz
    # 注意:中间有2个点;
    

    等同于:

    git cherry-pick xxxxx^…zzzzz
    # 注意:中间有 ^ 加3个点;
    
    1. 复制居于 xxxxx 和 zzzzz commit 的所有 commit,但不包含 xxxxx:
    git cherry-pick (xxxxx..zzzzz]
    # 注意:区间开闭
    

    发现没有,这样就能很轻松的将 commit 复制到另外一个分支了,不用人工再修改一遍,确实香啊~

    当然 git 还有很多其他很有用的命令,咱们未来探索了再记录分享哈,今天就到这啦~

    如果本文对您有帮助,麻烦动动手指点点赞?

    谢谢!

    相关文章

      网友评论

          本文标题:真香:git merge 与 git cherry-pick 命

          本文链接:https://www.haomeiwen.com/subject/jxssvltx.html