【原创】Git删除暂存区或版本库中的文件
生活随笔
收集整理的這篇文章主要介紹了
【原创】Git删除暂存区或版本库中的文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
0 基礎
? ? 我們知道Git有三大區(工作區、暫存區、版本庫)以及幾個狀態(untracked、unstaged、uncommited),下面只是簡述下Git的大概工作流程,詳細的可以參見本博客的其他有關Git的文章【鏈接】。? (1)打開你的項目文件夾,除了隱藏的.git文件夾,其他項目文件位于的地方便是工作區,工作區的文件需要添加到Git的暫存區(git add),隨后再提交到Git的版本庫(git commit)。(2)首次新建的文件都是untracked狀態(未跟蹤),此時需要git add到暫存區,Git便會在暫存區中生成一個該文件的索引,文件此時處于uncommited狀態,需要git commit生成版本庫。添加到了版本庫之后,再對文件進行修改,那么文件的狀態會變為unstaged狀態。
? ? 簡單的認識了Git的工作流程,接下來便可以看看如何刪除錯誤添加到暫存區或版本庫里的文件了!
1 刪除錯誤添加到暫存區的文件
? ? 有時你在工作區新建了文件TestFile,并且已經將它添加到了暫存區,git會告知,現有有一個文件未提交到版本庫,如下圖: ??
?
1.1 僅僅刪除暫存區里的文件? ??
? ??此時你想撤銷錯誤添加到暫存區里的文件,可以輸入以下命令:?
?
?
1.2 刪除暫存區和工作區的文件
?
?
2 刪除錯誤提交的commit
? ? 有時,不僅添加到了暫存區,而且commit到了版本庫,這個時候就不能使用git rm了,需要使用git reset命令。 ? ? 錯誤提交到了版本庫,此時無論工作區、暫存區,還是版本庫,這三者的內容都是一樣的,所以在這種情況下,只是刪除了工作區和暫存區的文件,下一次用該版本庫回滾那個誤添加的文件還會重新生成。? ? 這個時候,我們必須撤銷版本庫的修改才能解決問題!
? ? git reset有三個選項,--hard、--mixed、--soft。
//僅僅只是撤銷已提交的版本庫,不會修改暫存區和工作區 git reset --soft 版本庫ID
?
//僅僅只是撤銷已提交的版本庫和暫存區,不會修改工作區 git reset --mixed 版本庫ID?
//徹底將工作區、暫存區和版本庫記錄恢復到指定的版本庫 git reset --hard 版本庫ID ? ? 那我們到底應該用哪個選項好呢? ? ? (1)如果你是在提交了后,對工作區的代碼做了修改,并且想保留這些修改,那么可以使用git reset --mixed 版本庫ID,注意這個版本庫ID應該不是你剛剛提交的版本庫ID,而是剛剛提交版本庫的上一個版本庫。如下圖:? ? (2)如果不想保留這些修改,可以直接使用徹底的恢復命令,git reset --hard 版本庫ID。
? ? (3)為什么不使用--soft呢,因為它只是恢復了版本庫,暫存區仍然存在你錯誤提交的文件索引,還需要進一步使用上一節的刪除錯誤添加到暫存區的文件,詳細見上文。
轉載于:https://www.cnblogs.com/cposture/p/git.html
總結
以上是生活随笔為你收集整理的【原创】Git删除暂存区或版本库中的文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于VHDL的RISC micropro
- 下一篇: 基于 FPGA 的数字抢答器设计