第一點,我覺得也是最最重要的,就是明確git的三個區,工作區(working),暫存區(index),倉庫(repository)。

第二就是區與區之間的操作了。

working與index之間

git add 從working新增到index。

git checkout -- <file> (新版本可用git restore <file>替換)從index同步到working,不管working新增了或者刪除了檔案,這個命令都可以讓working的這個操作被丟棄,是index的內容等於working的。

git rm <file> 從index到working都刪除這個檔案。

git rm --cached <file>  如果想僅刪除index裡的檔案可以用此命令,它不會刪除工作區中的檔案。

index與repository之間

git commit 將檔案從index傳遞到repository。

git reset HEAD <file> 從repository重置到index。加了--hard就一路重置到working,且加不了<file>這個路徑了。