工作區和暫存區,關於修改和刪除

一、一些概念

工作區:就是在電腦裏看到的目錄就指工作區

版本庫:工作區有一個隱藏目錄 .git 這裏面不算工作區,而是版本庫

版本庫裏面包含了stage(暫存區),還有Git爲我們自動創建的第一個分支master,以及指向master的一個指針叫HEAD

二、相關的原理

工作區的文件往版本庫添加的時候,分爲兩步:

1.git add  實際上就是把文件修改添加到暫存區

2.git commit 實際上就是把暫存區的所有內容提交到當前分支master

換句話說就是,commit命令會一次性的將暫存區文件的所有修改


也就是說工作區的文件修改後如果沒有提交到暫存區,那麼commit是無意義的。而git add命令可以提交多次。

三、管理修改

什麼是修改?比如你新增了一行,這就是一個修改,刪除了一行,也是一個修改,更改了某些字符,也是一個修改,刪了一些又加了一些,也是一個修改,甚至創建一個新文件,也算一個修改。

git要識別是否修改了相關文件,一般的操作是

修改 => add =>commit

如果跳過add 直接commit 修改就不會被提交


四、撤銷修改

git checkout --file 可以丟棄工作區的修改

比如有一個haha.txt文件 包含了一行文字內容

你是我的小丫小蘋果
然後你在添加了一段文字
火火火火火
且保存了。如果不想要後面新添加的這一段文字,可以

1.手動刪除 然後保存

2.git checkout -- haha.txt(要注意格式,倆橫線左右都要留空格)

這個命令的執行也分兩種情況,一是還沒放到暫存區,那撤銷修改就回到和版本庫一樣的狀態,就是回到上一次commit時的狀態

二是放到了暫存區後又做了修改,那就會回到上一次add時的狀態

那麼假如工作區的文件做了修改,且add到了暫存區的話,可以用

git reset HEAD file 把暫存區的修改撤銷掉,重放會工作區。

第三種情況,不僅修改不僅add到了暫存區,還commit到了版本庫,怎麼辦?

那就可以用到版本回退。


五、刪除文件

在Git中,刪除也是修改。

比如講一個新文件add和commit到倉庫中,然後刪除該文件,這時工作區和版本庫不一致,用git status查看就會被告知那個文件被刪除了。

這時你可以做兩件事:

1.確定將該文件從版本庫中刪除,用命令 git rm file 並且commit

2.恢復誤刪的文件 用命令 git checkout -- file 一鍵還原

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章