美文网首页
Git合并提交和变基

Git合并提交和变基

作者: 三喵w | 来源:发表于2019-10-24 14:57 被阅读0次
    合并提交
    1. 先创建多个commit

      > git log --oneline
      
      90e96fc (HEAD -> build-dev) 添加 func3 方法
      0ac391c 添加 func2 方法
      e828a9d 添加 func1 方法
      ce801b5 (master) 合并5个提交
      
    2. 进行合并命令,合并 ce801b5 (合并5个提交) 之后的提交

      > git rebase -i ce801b5
      
      pick e828a9d 添加 func1 方法
      pick 0ac391c 添加 func2 方法
      pick 90e96fc 添加 func3 方法
      
      # 变基 ce801b5..90e96fc 到 ce801b5(3 个提交)
      #
      # 命令:
      # p, pick <提交> = 使用提交
      # r, reword <提交> = 使用提交,但修改提交说明
      # e, edit <提交> = 使用提交,进入 shell 以便进行提交修补
      # s, squash <提交> = 使用提交,但融合到前一个提交
      # f, fixup <提交> = 类似于 "squash",但丢弃提交说明日志
      # x, exec <命令> = 使用 shell 运行命令(此行剩余部分)
      # b, break = 在此处停止(使用 'git rebase --continue' 继续变基)
      # d, drop <提交> = 删除提交
      # l, label <label> = 为当前 HEAD 打上标记
      # t, reset <label> = 重置 HEAD 到该标记
      # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
      # .       创建一个合并提交,并使用原始的合并提交说明(如果没有指定
      # .       原始提交,使用注释部分的 oneline 作为提交说明)。使用
      # .       -c <提交> 可以编辑提交说明。
      #
      # 可以对这些行重新排序,将从上至下执行。
      #
      # 如果您在这里删除一行,对应的提交将会丢失。
      #
      # 然而,如果您删除全部内容,变基操作将会终止。
      #
      # 注意空提交已被注释掉
      
    3. 修改信息,把后面两个合并到第一个,形成新的提交, squash 表示保存修改,放到第一个提交里,wq保存

      pick e828a9d 添加 func1 方法
      squash 0ac391c 添加 func2 方法
      squash 90e96fc 添加 func3 方法
      
    4. 修改提交备注

      # 这是一个 3 个提交的组合。
      # 这是第一个提交说明:
      
      添加 func1 方法
      
      # 这是提交说明 #2:
      
      添加 func2 方法
      
      # 这是提交说明 #3:
      
      添加 func3 方法
      
      # 请为您的变更输入提交说明。以 '#' 开始的行将被忽略,而一个空的提交
      # 说明将会终止提交。
      

      修改为以下,wq保存

      合并三个请求
      
      # 请为您的变更输入提交说明。以 '#' 开始的行将被忽略,而一个空的提交
      # 说明将会终止提交。
      
    5. 最终效果

      d57f985 (HEAD -> build-dev) 添加 func1 方法
      ce801b5 (master) 合并5个提交
      
      ----- 以前样子 -----
      
      90e96fc (HEAD -> build-dev) 添加 func3 方法
      0ac391c 添加 func2 方法
      e828a9d 添加 func1 方法
      ce801b5 (master) 合并5个提交
      
    变基
    1. 目的在于保持提交历史的整洁

      在当前buid-dev分支进行拉取master分支提交记录,找到共同的父提交

      build-dev分支
      d57f985 (HEAD -> build-dev) 添加 func1 方法
      ce801b5 合并5个提交
      
      master分支
      0d59544 (HEAD -> master) 修改dev为master方法
      ce801b5 合并5个提交
      

      执行命令

      // 拉取master的提交记录进行合并
      > git rebase master
      // 效果
      d90494f (HEAD -> build-dev) 添加 func1 方法
      0d59544 (master) 修改dev为master方法
      ce801b5 合并5个提交
      

      执行命令

      // 切换主分支
      > git checkout master
      
      // 进行合并
      > git merge build-dev
      
      // 查看效果
      > git log --oneline 
      
      d90494f (HEAD -> master, build-dev) 添加 func1 方法
      0d59544 修改dev为master方法
      ce801b5 合并5个提交
      

    相关文章

      网友评论

          本文标题:Git合并提交和变基

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