情景1、如果修改了工作區某個檔案的內容,想直接放棄對工作區的修改,可以使用git checkout -- filename (兩個連字元後有個空格)
(1)、修改後的內容還沒有新增到暫存區,那麼撤銷之後,就回到和版本庫一模一樣的狀態了。
(2)、對檔案的修改已經新增到暫存區了,然後又做了修改,但是對第二次的修改還沒有新增到暫存區,那麼撤銷修改後就回到了和暫存區一樣的狀態了。
情景2、對檔案的修改已經新增到暫存區,但是還沒有提交,此時可以使用git reset head filename 命令撤銷暫存區的修改,這時回到了情景1,
情景3、如果不但已經新增到暫存區,還已經提交到版本庫中,那麼版本回退。
情景4、當你刪除了某個檔案後,此時工作區和版本庫就不一樣了,如果確實要刪除這個檔案,通過git rm filename 從版本庫中刪除該檔案,刪除之後提交即可;若屬於誤刪,通過git checkout -- filename 可以很簡單把誤刪的檔案恢復到版本庫里的版本。
不知道發現沒有情景1和情景4裡的命令是一樣的,git checkout -- filename 表示:檢查檔案工作區中filename是否和版本庫和暫存區中的一致,若不一致則恢復為暫存區和版本庫中狀態(具體恢復為暫存區還是版本庫中的狀態,看具體的情況吧)。其實這是我自己瞎琢磨的,不知道對不對?
Git 管理修改
現在,假定你已經完全掌握了暫存區的概念。下面,我們要討論的就是,為什麼git比其他版本控制系統設計得優秀,因為git跟蹤並管理的是修改,而非檔案。你會問,什麼是修改?比如你新增了一行,這就是乙個修改,刪除了一行,也是乙個修改,更改了某些字元,也是乙個修改,刪了一些又加了一些,也是乙個修改,甚至建立乙...
Git 管理修改
現在,假定你已經完全掌握了暫存區的概念。下面,我們要討論的就是,為什麼git比其他版本控制系統設計得優秀,因為git跟蹤並管理的是修改,而非檔案。你會問,什麼是修改?比如你新增了一行,這就是乙個修改,刪除了一行,也是乙個修改,更改了某些字元,也是乙個修改,刪了一些又加了一些,也是乙個修改,甚至建立乙...
Git管理修改
為什麼git比其他版本控制系統設計得優秀?因為git跟蹤並管理的是修改,而非檔案 修改 比如新增了一行 刪除了一行 更改了某些字元,這些都是乙個修改 為什麼說git跟蹤管理的是修改?這時候,可以做個實驗證明,例如修改某一檔案 下述test.txt 內容 然後將修改後的test.txt檔案新增到暫存區...