美文网首页
(六)小技能

(六)小技能

作者: Mooner_guo | 来源:发表于2016-09-05 19:08 被阅读29次

    一、git reset

    当文件版本冲突太多时候,rebase就不太好使了, 没个edit都要fix conflict。那么可以通过reset 来解决。
    git reset commitid

    图1.1 图1.2

    reset到版本B,这时候工作区的修改就是CD的修改内容了,那么冲洗作为一次提交,CD提交就会被干掉,如图1.3所示,直接把E强推到远端即可。

    图1.4

    二、git commit --amend

    前一秒提交了msg,后1s发现提交msg感觉描述不太好想改怎么办?好办,有2种办法。

    1. reset HEAD^,重新提交。
    2. git commit --amend修改提交内容即可。

    三、git rebase

    有多个记录想要修改怎么办?
    好办,git rebase -i commitid
    将指针移动到某个版本,将这个版本之后的提交全部重新提交一遍。

    图1.5

    如图1.5所示,我要修改435781d的内容,那么我就需要rebase到435781d的上一个版本92212dd。

    图1.6
    如图1.6所示,会将要修改提交消息的版本以及该版本之后的版本由上到下都列出来。
    看注释中的几个关键字的含义:
    p:当版本指针知指到使用e标记的版本这里,使用该提交,即直接把这个版本的提交作为新的提交,然后继续执行下一个版本。
    e: ,当版本指针知指到使用e标记的版本这里则停下来,使用该提交,用户可以输入git commit --amend 来修改提交记录,然后git rebase --continue 继续下一次提交。
    r:当版本指针知指到使用e标记的版本这里,使用该提交,但是会停下来给出的是vim编辑提交msg界面,修改msg后继续下一个提交。

    s: 压缩,当前指针指向的的提交压缩到上一个次提交内,如将第二行换pick换成s,则ca55e2c提交会和435718d合并到一起。注意:这个会保留ca55e2c的提交记录,保留提交记录如图1.7所示。

    图1.7

    f: 和s一样,只是不保留提交msg。

    四、git stash

    当我们修改一些文件之后,没有完成一个功能的开发,这时候保存一次提交又不合适,所以需要暂存。

    1. git stash
      将修改加入到暂存栈中。

    2. git stash list
      暂存的修改可以通过git stash list列出来。如图1.8所示。


      图1.8 暂存列表
    3. git stash pop
      将暂存栈的第一个修改弹出,并应用到工作区。

    4. git stash apply stash@{index}
      应用暂存栈的某个修改。

    相关文章

      网友评论

          本文标题:(六)小技能

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