• Git 撤销修改


    增补提交

      git commit –C HEAD –a --amend

      -C表示复用指定提交的提交留言,这个例子中是HEAD,实际上可以指定其他有效的提交名称。

      如果参数是小写的-c,就会打开预先设置好的编辑器,以便在已有的提交留言基础上编辑修改。

      增补提交只能针对最后一个提交,如果想更正好几个提交之前的某个错误,则须使用git revert这个命令。

    反转提交

      反转已经提交的改动,使用git revert命令,此命令通过在版本库中创建一个“反向的”新提交来抵消原来提交的改动

      通常Git会立即提交反转结果,但是也可以通过参数-n告诉Git先不要提交,这用于反转多个提交非常有用,运行多个git revert –n命令,Git会暂存所有的变更,然后做一次性提交。

      做反转操作的时候必须提供提交名称,反转总是按照从新到旧点的倒序来操作的,即最后的提交最先反转,这样可以避免一些不必要的冲突。

    复位

      命令git reset可以在复位版本库后,暂存工作目录树中因复位产生的与版本库的差异,以便提交。

      这对于在之前的提交中发现错误并需要更改时非常有用。

      这是通过--soft选项实现的,它使得Git暂存所有的因复位带来的差异,但不提交它。之后,用户可以修改这些内容再提交,或者干脆扔掉这些内容。

      选项--hard要小心使用,该选项会从版本库和工作目录树中同时删除提交,--hard就好像版本库中的删除键,并且不可恢复。

      git reset是以提交名称作为参数的,默认值是HEAD,可以用^~作为提交名称的修饰符来指定某个版本。

      HEAD^是指把版本库复位到当前HEAD之前的那个节点上,把HEAD这个版本的修改扔到工作目录树中,

      540ecb7~3是指要复位到540ecb7之前的三个节点上,即把该提交和之前的两个提交(共三个提交)扔到工作目录树中。

      git reset --hard HEAD^ 强制复位前一个提交。

      git reset HEAD可以用来清除已经add到缓存区但是不想进一步提交的内容。

      另一种方式是用git rm --cached,选项--cached表明是清除缓存区,然后不动工作目录树。

      注意git checkout filename将会删除该文件中所有没有暂存和提交的改动,这个操作是不可逆的。

    参考资料

      《版本控制之道——使用Git》(Pragmatic Version Control Using Git)

      Git分支管理策略:http://www.ruanyifeng.com/blog/2012/07/git.html

      Git Reference: http://gitref.org/

  • 相关阅读:
    ssh登录
    wireless tools的使用
    Ubuntu中的minicom
    ubuntu 下交叉编译环境的搭建
    两个队列实现一个栈
    二叉树节点的插入
    二叉树的非递归遍历
    acwing 66. 两个链表的第一个公共结点
    acwing 60. 礼物的最大价值
    acwing 55. 连续子数组的最大和
  • 原文地址:https://www.cnblogs.com/smile361/p/3714118.html
Copyright © 2020-2023  润新知