广告位联系
返回顶部
分享到

Git基础学习之文件删除操作命令介绍

相关技巧 来源:互联网 作者:佚名 发布时间:2022-10-20 21:54:34 人浏览
摘要

1、删除文件说明 在Git工作目录中要删除某个文件,首先要清楚该文件所处的状态。 若要是该文件未被Git管理,在工作区直接进行删除即可。(不演示) 但是,若该文件已经经过多次

1、删除文件说明

在Git工作目录中要删除某个文件,首先要清楚该文件所处的状态。

若要是该文件未被Git管理,在工作区直接进行删除即可。(不演示)

但是,若该文件已经经过多次git add与git commit操作后,就必须要从已跟踪文件清单中删除(确切地说,是在暂存区中删除),然后提交。

可以用git rm命令完成此项工作,并连带从工作目录中删除指定的文件,这样文件之后就不会出现在未跟踪文件清单中了。

2、删除文件操作

(1)仅删除暂存区的文件

1)创建文件,提交到版本库

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# 1.创建delete.html文件

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ echo "delete file test" >> delete.html

 

# 2.把delete.html文件提交到本地版本库中

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git add delete.html

warning: LF will be replaced by CRLF in delete.html.

The file will have its original line endings in your working directory

 

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git commit -m '新增delete.html文件'

[master 262df2c] 新增delete.html文件

 1 file changed, 1 insertion(+)

 create mode 100644 delete.html

  

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git status

On branch master

nothing to commit, working tree clean

2)查看暂存区和本地版本库中的文件列表

1

2

3

4

5

6

7

8

9

10

11

# 1.查看暂存区中的文件列表

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git ls-files

delete.html

readme.txt

 

# 2.查看本地版本库中的文件列表

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git ls-files --with-tree=HEAD

delete.html

readme.txt

我们可以看到暂存区和本地版本库中都是delete.html和readme.txt两个文件。

说明命令:git ls-files --with-tree=HEAD

该命令实际上查看的是,当前工作分支上,HEAD指针所指向的,时间节点中的文件列表。若查看上一个时间节点中的文件列表,则可将HEAD替换为HEAD^,当然也可以使用HEAD~n。

3)仅删除暂存区中delete.html文件

使用git rm --cached命令,该命令可以仅删除暂存区中的指定文件。

1

2

3

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git rm --cached delete.html

rm 'delete.html'

4)再次查看暂存区和本地版本库中的文件列表

1

2

3

4

5

6

7

8

9

# 1.查看暂存区中的文件列表

$ git ls-files

readme.txt

 

# 2.查看本地版本库中的文件列表

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git ls-files --with-tree=HEAD

delete.html

readme.txt

我们可以看到暂存区中已经没有了delete.html文件,但本地版本库中还存在。

此时,通过git commit命令进行提交,可以将本地库中的文件文件也删除。

5)恢复被删除delete.html文件

此时工作区中的delete.html文件还没有被删除,如下:

1

2

3

4

5

6

7

8

9

10

11

# 也可以使用ll命令查看

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git status

On branch master

Changes to be committed:

  (use "git restore --staged <file>..." to unstage)

        deleted:    delete.html # 已删除

 

Untracked files:

  (use "git add <file>..." to include in what will be committed)

        delete.html # 未被追踪

此时最简单的恢复方式是,将delete.html文件git add到暂存区,再git commit提交到本地版本库中。(我的理解是,把delete.html文件添加到暂存区,这一步就让delete.html文件恢复了,因为此时工作区,暂存区,版本库中的delete.html文件都是一样的。在执行git commit提交,也没有什么意思了。大家可以自己也思考一下。)

下面我们使用git reset命令进行恢复。

执行命令git reset HEAD,即执行的完全命令为git reset --mixed HEAD。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# 1.版本回退

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git reset HEAD

 

# 2.查看暂存区中的文件列表

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git ls-files

delete.html

readme.txt

 

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git status

On branch master

nothing to commit, working tree clean

可以看到暂存区中的delete.html文件已恢复。

(2)完全删除文件

所谓完全删除文件,指的是将工作区、暂存区和本地库中的指定文件一次性都删除。

1)删除delete.html文件

使用命令git rm filename。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

# 接上面示例

# 1.完全删除delete.html文件

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git rm delete.html

rm 'delete.html'

 

# 2.查看暂存区中的文件列表

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git ls-files

readme.txt

 

# 3.查看本地版本库中的文件列表

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git ls-files --with-tree=HEAD

delete.html

readme.txt

 

# 4.查看工作区中的文件列表

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ ll

total 1

-rw-r--r-- 1 L 197121 80  4月 15 17:34 readme.txt

 

# 5.查看工作目录中的文件状态

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git status

On branch master

Changes to be committed:

  (use "git restore --staged <file>..." to unstage)

        deleted:    delete.html

我们可以工作区和暂存区中的delete.html文件都已经被删除,但是本地版本库中的delete.html文件还存在。

我们查看了当前工作目录中的文件状态,发现delete.html文件是已删除状态。

因此若要将本地版本库中的delete.html文件删除,直接commit提交即可。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# 提交操作

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git commit -m '删除 delete.html文件'

[master fdcb771] 删除 delete.html文件

 1 file changed, 1 deletion(-)

 delete mode 100644 delete.html

 

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ git status

On branch master

nothing to commit, working tree clean

 

# 查看工作目录文件

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

$ ll

total 1

-rw-r--r-- 1 L 197121 80  4月 15 17:34 readme.txt

说明delete.html文件已经被彻底删除了。

3、本文用到的命令总结

git ls-files:查看暂存区中的文件列表。

git ls-files --with-tree=HEAD:查看本地版本库中的文件列表。(文中有使用说明)

git rm --cached filename:仅删除暂存区中的文件。

git rm filename:删除工作区和暂存区的文件。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://www.cnblogs.com/liuyuelinfighting/p/16802897.html
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计