可以實現相同的功能,比如還原本地檔案,但是reset更強調「撤銷」,比如撤銷暫存區、撤銷暫存區和本地,而checkout更強調「替換」,比如用暫存區內容替換本地,用head指向目錄替換暫存區和本地。
reset強調,撤銷
git reset head - - filename
撤銷上次暫存(取消暫存區的內容,用head指向的目錄(版本庫)替換暫存區)
如果只刪除暫存,保留工作區,可以使用git rm --cached -r filename,-r表示遞迴刪除
git reset - -hard head:
撤銷本地和暫存區的所有變動(用head指向的目錄(版本庫)替換本地和暫存區)
git reset – hard origin/master
撤銷本地、暫存區、版本庫(用遠端伺服器的origin/master替換本地、暫存區、版本庫)
checkout強調,替換
git checkout [- -] filename
- 用暫存區的內容替換工作區的檔案。比如working directory修改了,但是想放棄這些修改,那麼使用git checkout -- a.txt 放棄對a.txt的修改
git checkout head filename
- 用head指向的目錄(版本庫)替換暫存區和工作區的檔案
head
git的命令中經常會用到head,可以將head看做乙個指標,head指本地的版本庫,可以將head替換為遠端庫,比如origin/master,origin代表乙個位址,master是分支。
origin
- origin代表遠端倉庫的位址 ,在config檔案中
原文:
git reset與git revert的區別
格式 git reset q git reset patch p git reset soft mixed hard merge keep q 用法git reset mixed回退commit,保留原始碼,預設方式.git reset soft回退至某個版本,只回退commit資訊 git res...
撤銷 Git reset操作
本文 找回git中丟失的commit 在使用git的過程中,有時候會因為一些誤操作,比如reset rebase merge等。特別是在commit之後又執行了git reset hard head強制回滾本地記錄以及檔案到伺服器版本,導致本地做的修改全部恢復到git當前分支的伺服器版本,同時自己的...
git reset 用法詳解
git reset 命令用於回退版本,可以指定退回某一次提交的版本。git reset soft mixed hard head mixed為預設,可以不用帶該引數,用於重置暫存區的檔案與上一次的提交 commit 保持一致,工作區檔案內容保持不變。git reset head 回退所有內容到上乙個...