Git 重置(reset)

使用 ct 表示commit时产生的对象,fp表示文件路径

两种用法

  1. git reset ct fp

    此用法包含文件路径,用指定的ct下的fp替换暂存区中的文件,不会重置ct和改变工作区的文件

    例:有多个已提交的文件,ct1=哈希1,更改内容并提交后ct2=哈希2,此时再更改内容并使用了add添加到暂存区,如果此时不想提交了,并需要将已提交文件中的1.txt恢复到ct1。

    则可以使用命令git reset ct1 1.txt后进行commit

  2. git reset --参数 ct

    此方法不包含文件路径,根据不同的子操作可以对暂存区或工作区进行重置。

    • 不使用参数(默认为 —mixed):如git reset ct,会使当前的提交引用引用指向ct并改变暂存区内容为ct的内容。
    • 使用参数hard:如git reset --hard ct,会使当前的提交引用引用指向ct,暂存区与工作区的内容也会变更为ct的内容。
    • 使用参数soft:如git reset --soft ct,只将当前的提交引用引用指向ct。
    • 命令git resetgit reset HEAD:仅用HEAD指向的目录树(与master相同)重置暂存区,相当于撤销之前的git add操作。
    • 命令git reset -- 文件名git reset HEAD 文件名:仅将某个文件的改动撤出暂存区。
    • 命令git reset HEAD^git reset --mixed HEAD^:暂存区与ct回退一次
    • 命令git reset --hard HEAD^:工作区、暂存取,ct全部回退一次

其它

Git对象

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 7,883评论 1 26
  • 突然想起马云说的一句话,创业是要看社会有什么需求,我们去解决他。就是说哪里有抱怨,哪里就有商机。 事实上,这句话不...
    Curtis2019阅读 49评论 0 0
  • 第三章《萌芽的心》 小倩是吧台的服务员,一个...
    文颠阅读 110评论 0 0
  • 再说我的大宝,四岁到五岁的时光,心智突飞猛进,转眼间他懂得了许多,也暴露出好多成长的烦恼。 在幼儿园老师眼中,大宝...
    小米粒妈妈阅读 179评论 0 0