【原创】Git删除暂存区或版本库中的文件
生活随笔
收集整理的這篇文章主要介紹了
【原创】Git删除暂存区或版本库中的文件
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
0 基礎(chǔ)
? ? 我們知道Git有三大區(qū)(工作區(qū)、暫存區(qū)、版本庫(kù))以及幾個(gè)狀態(tài)(untracked、unstaged、uncommited),下面只是簡(jiǎn)述下Git的大概工作流程,詳細(xì)的可以參見(jiàn)本博客的其他有關(guān)Git的文章【鏈接】。? (1)打開(kāi)你的項(xiàng)目文件夾,除了隱藏的.git文件夾,其他項(xiàng)目文件位于的地方便是工作區(qū),工作區(qū)的文件需要添加到Git的暫存區(qū)(git add),隨后再提交到Git的版本庫(kù)(git commit)。(2)首次新建的文件都是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ù)里的文件了!
1 刪除錯(cuò)誤添加到暫存區(qū)的文件
? ? 有時(shí)你在工作區(qū)新建了文件TestFile,并且已經(jīng)將它添加到了暫存區(qū),git會(huì)告知,現(xiàn)有有一個(gè)文件未提交到版本庫(kù),如下圖: ??
?
1.1 僅僅刪除暫存區(qū)里的文件? ??
? ??此時(shí)你想撤銷(xiāo)錯(cuò)誤添加到暫存區(qū)里的文件,可以輸入以下命令:?
?
?
1.2 刪除暫存區(qū)和工作區(qū)的文件
?
?
2 刪除錯(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í)候,我們必須撤銷(xiāo)版本庫(kù)的修改才能解決問(wèn)題!
? ? git reset有三個(gè)選項(xiàng),--hard、--mixed、--soft。
//僅僅只是撤銷(xiāo)已提交的版本庫(kù),不會(huì)修改暫存區(qū)和工作區(qū) git reset --soft 版本庫(kù)ID
?
//僅僅只是撤銷(xiāo)已提交的版本庫(kù)和暫存區(qū),不會(huì)修改工作區(qū) git reset --mixed 版本庫(kù)ID?
//徹底將工作區(qū)、暫存區(qū)和版本庫(kù)記錄恢復(fù)到指定的版本庫(kù) git reset --hard 版本庫(kù)ID ? ? 那我們到底應(yīng)該用哪個(gè)選項(xiàng)好呢? ? ? (1)如果你是在提交了后,對(duì)工作區(qū)的代碼做了修改,并且想保留這些修改,那么可以使用git reset --mixed 版本庫(kù)ID,注意這個(gè)版本庫(kù)ID應(yīng)該不是你剛剛提交的版本庫(kù)ID,而是剛剛提交版本庫(kù)的上一個(gè)版本庫(kù)。如下圖:? ? (2)如果不想保留這些修改,可以直接使用徹底的恢復(fù)命令,git reset --hard 版本庫(kù)ID。
? ? (3)為什么不使用--soft呢,因?yàn)樗皇腔謴?fù)了版本庫(kù),暫存區(qū)仍然存在你錯(cuò)誤提交的文件索引,還需要進(jìn)一步使用上一節(jié)的刪除錯(cuò)誤添加到暫存區(qū)的文件,詳細(xì)見(jiàn)上文。
轉(zhuǎn)載于:https://www.cnblogs.com/cposture/p/git.html
總結(jié)
以上是生活随笔為你收集整理的【原创】Git删除暂存区或版本库中的文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于VHDL的RISC micropro
- 下一篇: 基于 FPGA 的数字抢答器设计