1.9 git reset HEAD 管理暂存区中的文件

主要使用的命令:git reset HEAD、git checkout

[root@localhost hd]# touch i.php

[root@localhost hd]# git status

# 位于分支 master

# 未跟踪的文件:

#  (使用 "git add <file>..." 以包含要提交的内容)

#

#      i.php

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

步骤解释:创建一个i.php文件,查看工作区状态,这时可以看见i.php文件还没add加入缓存区

[root@localhost hd]# git add .

[root@localhost hd]# git status

# 位于分支 master

# 要提交的变更:

#  (使用 "git reset HEAD <file>..." 撤出暂存区)

#

#      新文件:    i.php

#

解释:这时 , i.php文件还未commit提交 , 只是add加入到了缓存区可以提交变更

[root@localhost hd]# vi i.php

[root@localhost hd]# git status

# 位于分支 master

# 要提交的变更:

#  (使用 "git reset HEAD <file>..." 撤出暂存区)

#

#      新文件:    i.php

#

# 尚未暂存以备提交的变更:

#  (使用 "git add <file>..." 更新要提交的内容)

#  (使用 "git checkout -- <file>..." 丢弃工作区的改动)

#

#      修改:      i.php

#

解释: 修改了i.php后,查看工作区状态显示i.php这个文件有两个变更 ,

         1.暂存区i.php可以commot提交, 

         2.对i.php文件的修改还未add加入到暂存区

下面来试试 , "git reset HEAD <file>..." 撤出暂存区

[root@localhost hd]# git reset HEAD i.php

[root@localhost hd]# git status

# 位于分支 master

# 未跟踪的文件:

#  (使用 "git add <file>..." 以包含要提交的内容)

#

#      i.php

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

[root@localhost hd]# cat i.phpdsfasdfa

解释:可以看到,执行完git reset HEAD i.php命令后 , i.php 撤出暂存区了 , 但是i.php文件修改的内容没有影响 , 只是撤出暂存区

[root@localhost hd]# git add .

[root@localhost hd]# git commit -m "首次提交i.php文件"

[root@localhost hd]# vi i.php

[root@localhost hd]# cat i.php

dsfasdfa

新增内容:哈哈哈哈

[root@localhost hd]# git status

# 位于分支 master

# 尚未暂存以备提交的变更:

#  (使用 "git add <file>..." 更新要提交的内容)

#  (使用 "git checkout -- <file>..." 丢弃工作区的改动)

#

#      修改:      i.php

#

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

[root@localhost hd]#

解释:重新把i.php加入暂存区并commit提交了之后再次修改一下文件内容,查看工作区状态,i.php的修改还未加入到暂存区

来使用"git checkout -- <file>..." 丢弃工作区的改动

[root@localhost hd]# git checkout -- i.php

[root@localhost hd]# cat i.php

dsfasdfa

解释:可以看到,对i.php文件的修改还未加入缓存区并提交的i.php,重新git checkout后已经回退到版本库的版本了,修改的内容不在了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容