說說Git reset 與 revert 的故事
俗話說一入Git深似海,單獨說Git一本書恐怕都不夠,今天只是淺嘗止渴而已。
簡單說說reset
和revert
2個主要命令。
要學習Git,首先要明白Git幾個基本概念
- Workspace:工作區
- Index / Stage:暫存區
- Repository:倉庫區(或本地倉庫)
搞懂了這三個區域,才能更好理解這些Git命令是在幹什麼。
一、reset
reset命令的作用?
reset
命令把當前分支指向另外一個位置(提交的ID版本號),並且有選擇性的變動暫存區
和工作區
的內容。
原理是基於本地倉庫的文件去覆蓋暫存區或工作區的內容
reset主要參數的區別
當沒有指定ID的時候,默認使用HEAD
,如果指定ID,那麼就是基於指向ID去變動暫存區或工作區的內容
// 沒有指定ID, 暫存區的內容會被當前ID版本號的內容覆蓋,工作區不變ngit resetnn// 指定ID,暫存區的內容會被指定ID版本號的內容覆蓋,工作區不變ngit reset <ID> n
- --mixed(默認)
默認的時候,只有暫存區變化
- --hard參數
如果使用--hard
參數,那麼工作區也會變化
- --soft
如果使用--soft
參數,那麼暫存區和工作區都不會變化
二、revert
revert
命令撤銷指定的commit並且新建一個commit,新建comment的內容由指定commit前一個提交內容保持一致
git revert <commit> n
參考鏈接
- 圖解Git
- 猴子都能懂的Git入門
以上部分圖片來源於圖解Git
推薦閱讀:
※Visual Studio Code 使用Git進行版本控制
※git 怎麼在倉庫裡面上傳一個文件夾到github?
※Git 自動回滾 和 應用發布的二三事
※Git由淺入深之細說變基(rebase)
TAG:Git |