第一点,我觉得也是最最重要的,就是明确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>这个路径了。