<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在Git工作目錄中要刪除某個檔案,首先要清楚該檔案所處的狀態。
若要是該檔案未被Git管理,在工作區直接進行刪除即可。(不演示)
但是,若該檔案已經經過多次git add
與git commit
操作後,就必須要從已跟蹤檔案清單中刪除(確切地說,是在暫存區中刪除),然後提交。
可以用git rm
命令完成此項工作,並連帶從工作目錄中刪除指定的檔案,這樣檔案之後就不會出現在未跟蹤檔案清單中了。
1)建立檔案,提交到版本庫
# 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.檢視暫存區中的檔案列表 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
命令,該命令可以僅刪除暫存區中的指定檔案。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git rm --cached delete.html rm 'delete.html'
4)再次檢視暫存區和本地版本庫中的檔案列表
# 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
檔案還沒有被刪除,如下:
# 也可以使用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.版本回退 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
檔案已恢復。
所謂完全刪除檔案,指的是將工作區、暫存區和本地庫中的指定檔案一次性都刪除。
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.檢視暫存區中的檔案列表 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
提交即可。
# 提交操作 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
檔案已經被徹底刪除了。
git ls-files
:檢視暫存區中的檔案列表。
git ls-files --with-tree=HEAD
:檢視本地版本庫中的檔案列表。(文中有使用說明)
git rm --cached filename
:僅刪除暫存區中的檔案。
git rm filename
:刪除工作區和暫存區的檔案。
到此這篇關於Git基礎學習之檔案刪除操作命令詳解的文章就介紹到這了,更多相關Git檔案刪除操作內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45