網(wǎng)站首頁 編程語言 正文
1、刪除文件說明
在Git工作目錄中要刪除某個文件,首先要清楚該文件所處的狀態(tài)。
若要是該文件未被Git管理,在工作區(qū)直接進行刪除即可。(不演示)
但是,若該文件已經(jīng)經(jīng)過多次git add
與git commit
操作后,就必須要從已跟蹤文件清單中刪除(確切地說,是在暫存區(qū)中刪除),然后提交。
可以用git rm
命令完成此項工作,并連帶從工作目錄中刪除指定的文件,這樣文件之后就不會出現(xiàn)在未跟蹤文件清單中了。
2、刪除文件操作
(1)僅刪除暫存區(qū)的文件
1)創(chuàng)建文件,提交到版本庫
# 1.創(chuàng)建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)查看暫存區(qū)和本地版本庫中的文件列表
# 1.查看暫存區(qū)中的文件列表 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
我們可以看到暫存區(qū)和本地版本庫中都是delete.html
和readme.txt
兩個文件。
說明命令:git ls-files --with-tree=HEAD
該命令實際上查看的是,當前工作分支上,HEAD指針所指向的,時間節(jié)點中的文件列表。若查看上一個時間節(jié)點中的文件列表,則可將HEAD替換為HEAD^
,當然也可以使用HEAD~n
。
3)僅刪除暫存區(qū)中delete.html文件
使用git rm --cached
命令,該命令可以僅刪除暫存區(qū)中的指定文件。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git rm --cached delete.html rm 'delete.html'
4)再次查看暫存區(qū)和本地版本庫中的文件列表
# 1.查看暫存區(qū)中的文件列表 $ 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
我們可以看到暫存區(qū)中已經(jīng)沒有了delete.html
文件,但本地版本庫中還存在。
此時,通過git commit
命令進行提交,可以將本地庫中的文件文件也刪除。
5)恢復被刪除delete.html文件
此時工作區(qū)中的delete.html
文件還沒有被刪除,如下:
# 也可以使用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
到暫存區(qū),再git commit
提交到本地版本庫中。(我的理解是,把delete.html
文件添加到暫存區(qū),這一步就讓delete.html
文件恢復了,因為此時工作區(qū),暫存區(qū),版本庫中的delete.html
文件都是一樣的。在執(zhí)行git commit
提交,也沒有什么意思了。大家可以自己也思考一下。)
下面我們使用git reset
命令進行恢復。
執(zhí)行命令git reset HEAD
,即執(zhí)行的完全命令為git reset --mixed HEAD
。
# 1.版本回退 L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git reset HEAD # 2.查看暫存區(qū)中的文件列表 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
可以看到暫存區(qū)中的delete.html
文件已恢復。
(2)完全刪除文件
所謂完全刪除文件,指的是將工作區(qū)、暫存區(qū)和本地庫中的指定文件一次性都刪除。
1)刪除delete.html文件
使用命令git rm filename
。
# 接上面示例 # 1.完全刪除delete.html文件 L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git rm delete.html rm 'delete.html' # 2.查看暫存區(qū)中的文件列表 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.查看工作區(qū)中的文件列表 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.查看工作目錄中的文件狀態(tài) 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
我們可以工作區(qū)和暫存區(qū)中的delete.html
文件都已經(jīng)被刪除,但是本地版本庫中的delete.html
文件還存在。
我們查看了當前工作目錄中的文件狀態(tài),發(fā)現(xiàn)delete.html
文件是已刪除狀態(tài)。
因此若要將本地版本庫中的delete.html
文件刪除,直接commit
提交即可。
# 提交操作 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
文件已經(jīng)被徹底刪除了。
3、本文用到的命令總結
git ls-files
:查看暫存區(qū)中的文件列表。
git ls-files --with-tree=HEAD
:查看本地版本庫中的文件列表。(文中有使用說明)
git rm --cached filename
:僅刪除暫存區(qū)中的文件。
git rm filename
:刪除工作區(qū)和暫存區(qū)的文件。
原文鏈接:https://www.cnblogs.com/liuyuelinfighting/p/16802897.html
相關推薦
- 2022-11-14 Go語言官方依賴注入工具Wire的使用教程_Golang
- 2023-11-25 全局后置路由守衛(wèi)(afterEach)
- 2022-11-10 利用C++實現(xiàn)獲取文件夾下所有文件名_C 語言
- 2022-05-22 Nginx服務LNMP之WordPress部署流程步驟_nginx
- 2022-11-07 .NET?實現(xiàn)啟動時重定向程序運行路徑及?Windows?服務運行模式部署的方法_實用技巧
- 2022-09-03 Redis實現(xiàn)Session共享與單點登錄_Redis
- 2022-06-15 golang?gorm的關系關聯(lián)實現(xiàn)示例_Golang
- 2022-11-17 Go語言學習教程之指針的示例詳解_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支