1. 程式人生 > >Git學習(五)----Git工作區&暫存區&版本庫(“三巨頭”)、刪除檔案、撤銷操作

Git學習(五)----Git工作區&暫存區&版本庫(“三巨頭”)、刪除檔案、撤銷操作

工作區、暫存區(stage)、版本庫

工作區:比如我的就是git1。

版本庫:工作區裡有個隱藏的.git資料夾,這個奏是Git的版本庫

暫存區:Git版本庫裡一個很重要的部分。

                 


以新增檔案或者修改檔案為例:

(1)git add就是把“工作區檔案的修改”新增到“暫存區”;

(2)git commit就是把“暫存區的所有內容”提交到“當前分支”(目前為止我們都使用的都是git自動為我們建的master分支,分支之後再說)


好比吃飯:

        我們先拿餐具挑選食物(對檔案進行操作)--->塞到嘴裡,吧唧吧唧(git add,儲存在暫存區)--->跨擦!嚥下去了(git commit)


   如果,你對檔案修改了沒有git add,直接commit是不會提交更新的而且會報錯(畢竟嘴裡沒東西,咽啥啊)。

   如果,對檔案修改了,然後git add了,之後腦子犯抽的再次修改了檔案沒git add,那麼只會將之前add的提交(咽東西只會咽嘴裡的啊,你筷子上有啥沒卵用)。這個時候你跳轉到這個版本就會發現第二次修改的東西不見了。



刪除檔案:git rm <file>


刪除檔案和上文git add原理十一樣的:“工作區檔案的操作” ---> “暫存區” ---> “當前分支”

所以,首先我們先到工作區刪除檔案 ---> 然後,git rm <file>

---> 最後,git commit -m"***"

        刪除git1下的test2.txt檔案,然後在控制檯輸入:git status 檢視

       

        輸入:git rm test2.txt

        (“刪除操作”新增到暫存區成功)

        輸入:git commit -m“delete file test2.txt”

        (刪除操作成功,是不是so easy。)      

(๑乛◡乛๑):你會用嗎?


撤銷修改:
沒add、沒commit:    修改某個檔案內容,想丟棄修改時,git checkout -- <file>。(直接扔掉修改)
已add、沒commit:    先git reset <commit id> <file>,然後git checkout -- <file>。(先從暫存區中刪除,在刪除檔案修改)
已add、已commit:   
版本跳轉

注意:git checkout -- <file> 中的“--”不要漏寫了,不然就變成“切換分支”的命令了

我們首先先把刪掉的檔案撤銷回來吧!

     輸入:git reset --hard fab70b              (我這裡commit id 只寫了6位,記得加上 --hard 不然看不到test2.txt檔案的)

    

    修改test2.txt 檔案(沒add)。輸入 git checkout -- test2.txt

   

    修改test2.txt檔案 ---> git add

   

    然後撤銷修改,輸入:git reset fab70b3 test2.txt;再輸入:git checkout -- test2.txt

   

   檔案刪除的撤銷操作是一樣的,不演示了。