Git - 基本概念(更改提交)

更改提交:

【注】如果一个分支已经公开了,并且可能已经存在于其他版本库中了,你就不应该重写,修改或更改该分支的任何部分。

通过git reset命令来更改提交:

git reset --soft HEAD // --soft:索引和工作目录的内容不变,只是将HEAD游标指向给定的提交,通过--soft选项,可以调整提交信息,即commit -m "[new]"

git reset --mixed HEAD^ // 和git reset HEAD^, 默认为--mixed,索引改变,工作目录不变,通过--mixed选项,可以修改要提交的文件内容。

git reset --hard HEAD^ //索引和工作路径都改变。

通过git cherry-pick命令:

通常用于把版本库中一个分支的特定提交引入一个不同的分支中。还可以重建一些提交。

A---B---C---D---E---F---G---H         (dev)
        \
         V---W---X---Y---Z           (rel_2.3)
 

例子:开发线dev在提交F中修复了一个bug,假设发布版rel_2.3也存在这个bug,可以通过cherry-pick来将dev 中的提交引入rel_2.3中修复bug。

git checkout rel_2.3

git cherry-pick dev~2

A---B---C---D---E---F---G---H         (dev)
        \
         V---W---X---Y---Z---F'       (rel_2.3)
通过git revert 命令:

通常用于撤销历史记录中的指定提交。

git revert master~3

通过 git commit --amend 命令:

通常这条命令用于修改最新提交,amend意味着提交内容基本相同,但某些方面需要调整或清理。最主要的通途就是在刚做一个提交后修改录入错误。

git add [file] //修改了最新提交的某个文件,然后暂存。

git commit --amend //提交修改,生成一个新的提交替代之前的提交。

通过 git rebase 命令:

通常这条命令用于变基提交,也就是用来改变一串提交以什么为基础的。

git checkout [要变基的分支]

git rebase [基础分支---要变基到的提交]

git rebase [基础分支---要变基到的提交] [要变基的分支]

例如,变基之前:

A---B---C---D---E       (master 基础分支)
     \ 
      W---X---Y---Z      (topic 要变基的分支)
变基之后:git rebase master topic

A---B---C---D---E                       (master 基础分支)
                 \
                  W'---X'---Y'---Z'        (topic 要变基的分支)

git rebase --onto master maint^ feature (master:要变基到的提交,maint^:当前分支的基础提交,feature:要变基的分支)

git rebase --continue //解决冲突后,执行命令继续变基

git rebase --skip //遇到冲突,执行命令,跳过冲突

git rebase --abort //遇到冲突,执行命令,放弃冲突

变基与合并

A---B---C---D        (master)
       \
        X---Y---Z       (dev)
          \
           P---Q      (dev2)
如果现在要将dev分支变基到master最近的提交,那么需要:
git rebase master dev
git rebase dev^ dev2



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值