溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Git如何刪除暫存區(qū)或版本庫(kù)中的文件

發(fā)布時(shí)間:2021-07-14 15:15:15 來(lái)源:億速云 閱讀:1000 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“Git如何刪除暫存區(qū)或版本庫(kù)中的文件”,在日常操作中,相信很多人在Git如何刪除暫存區(qū)或版本庫(kù)中的文件問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Git如何刪除暫存區(qū)或版本庫(kù)中的文件”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!


 

基礎(chǔ)

Git有三大區(qū)(工作區(qū)、暫存區(qū)、版本庫(kù))以及幾個(gè)狀態(tài)(untracked、unstaged、uncommited),下面只是簡(jiǎn)述下Git的大概工作流程,詳細(xì)的可以參見(jiàn)其他有關(guān)Git的文章。

  • 打開(kāi)你的項(xiàng)目文件夾,除了隱藏的.git文件夾,其他項(xiàng)目文件位于的地方便是工作區(qū),工作區(qū)的文件需要添加到Git的暫存區(qū)(git add),隨后再提交到Git的版本庫(kù)(git commit)。

  • 首次新建的文件都是untracked狀態(tài)(未跟蹤),此時(shí)需要git add到暫存區(qū),Git便會(huì)在暫存區(qū)中生成一個(gè)該文件的索引,文件此時(shí)處于uncommited狀態(tài),需要git commit生成版本庫(kù)。添加到了版本庫(kù)之后,再對(duì)文件進(jìn)行修改,那么文件的狀態(tài)會(huì)變?yōu)閡nstaged狀態(tài)。
    簡(jiǎn)單的認(rèn)識(shí)了Git的工作流程,接下來(lái)便可以看看如何刪除錯(cuò)誤添加到暫存區(qū)或版本庫(kù)里的文件了!

 

刪除錯(cuò)誤添加到暫存區(qū)的文件

有時(shí)你在工作區(qū)新建了文件TestFile,并且已經(jīng)將它添加到了暫存區(qū),git會(huì)告知,現(xiàn)有有一個(gè)文件未提交到版本庫(kù),如下圖:

Git如何刪除暫存區(qū)或版本庫(kù)中的文件  
未提交到版本庫(kù)
 

僅僅刪除暫存區(qū)里的文件

此時(shí)你想撤銷錯(cuò)誤添加到暫存區(qū)里的文件,可以輸入以下命令:

git rm --cache 文件名
 

 
Git如何刪除暫存區(qū)或版本庫(kù)中的文件  
撤銷錯(cuò)誤添加到暫存區(qū)

上面的命令僅僅刪除暫存區(qū)的文件而已,不會(huì)影響工作區(qū)的文件,如上圖,TestFile.txt仍然存在,此時(shí)輸入下面命令,git會(huì)告知有一個(gè)未跟蹤的文件TestFile.txt。

git status
   

刪除暫存區(qū)和工作區(qū)的文件

git rm -f 文件名
 

工作區(qū)的文件也被刪除了。

Git如何刪除暫存區(qū)或版本庫(kù)中的文件  
工作區(qū)的文件
 

刪除錯(cuò)誤提交的commit

有時(shí),不僅添加到了暫存區(qū),而且commit到了版本庫(kù),這個(gè)時(shí)候就不能使用git rm了,需要使用git reset命令。
錯(cuò)誤提交到了版本庫(kù),此時(shí)無(wú)論工作區(qū)、暫存區(qū),還是版本庫(kù),這三者的內(nèi)容都是一樣的,所以在這種情況下,只是刪除了工作區(qū)和暫存區(qū)的文件,下一次用該版本庫(kù)回滾那個(gè)誤添加的文件還會(huì)重新生成。
這個(gè)時(shí)候,我們必須撤銷版本庫(kù)的修改才能解決問(wèn)題!
git reset有三個(gè)選項(xiàng),--hard、--mixed、--soft。

//僅僅只是撤銷已提交的版本庫(kù),不會(huì)修改暫存區(qū)和工作區(qū)
git reset --soft 版本庫(kù)ID
 
//僅僅只是撤銷已提交的版本庫(kù)和暫存區(qū),不會(huì)修改工作區(qū)
git reset --mixed 版本庫(kù)ID
 
//徹底將工作區(qū)、暫存區(qū)和版本庫(kù)記錄恢復(fù)到指定的版本庫(kù)
git reset --hard 版本庫(kù)ID
 

那我們到底應(yīng)該用哪個(gè)選項(xiàng)好呢?

  • 如果你是在提交了后,對(duì)工作區(qū)的代碼做了修改,并且想保留這些修改,那么可以使用git reset --mixed 版本庫(kù)ID,注意這個(gè)版本庫(kù)ID應(yīng)該不是你剛剛提交的版本庫(kù)ID,而是剛剛提交版本庫(kù)的上一個(gè)版本庫(kù)。如下圖:

  • 如果不想保留這些修改,可以直接使用徹底的恢復(fù)命令,git reset --hard 版本庫(kù)ID。

  • 為什么不使用--soft呢,因?yàn)樗皇腔謴?fù)了版本庫(kù),暫存區(qū)仍然存在你錯(cuò)誤提交的文件索引,還需要進(jìn)一步使用上一節(jié)的刪除錯(cuò)誤添加到暫存區(qū)的文件,詳細(xì)見(jiàn)上文。

Git如何刪除暫存區(qū)或版本庫(kù)中的文件    

到此,關(guān)于“Git如何刪除暫存區(qū)或版本庫(kù)中的文件”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

git
AI