0 Preface/Foreword
1 文件状态
文件包含以下4个状态:
- untracked,未跟踪,表示该文件在文件夹中,但是没有加入到git 仓库中进行版本管控。可以通过git add命令将该文件增加到git 仓库中。从untracked变为staged。
- unmodified,未修改,表示该文件已经在git 仓库中,未修改,表示版本库中的文件快照内容与文件夹完全一致。该文件可以变为modified(编辑修改改文件)和untracked(git rm移出版本库)。
- modified,文件已修改,只表示文件有修改,未进行其他操作。该文件此时可以通过git add变为暂存状态,也可以通过git checkout(从库中取出文件,覆盖当前文件)/ git restore 丢弃修改过的内容,返回unmodified。
- staged,暂存状态。执行git commit,将会将修改同步到库中,这是库中的文件和本地文件变为一致,此时文件将变为unmodified。执行git reset HEAD filename取消暂存,文件状态变为modified。
1.1 modified to unmodified
1.2 modified to staged
1.3 staged to modified
git restore --staged filename or git reset HEAD filename