实验版本:
git --version
git version 1.9.1
图例:
git checkout 不带版本参数时,是用暂存区覆盖工作区,工作区差异将被丢弃(当然未跟踪新文件除外)。
git checkout 带版本参数时,是用该版本覆盖暂存区和工作区,暂存区和工作区差异都会被丢弃,stage新增文件会保留在stage。
git reset --hard 带版本时,是用该版本覆盖暂存区和工作区,暂存区和工作区差异都会被丢弃,stage新增文件也不会保留(当然未跟踪新文件除外)。
- reset --hard
linux-3.10$:git st ./
位于分支 airplay
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: README
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: README
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
drivers/soc/pm/resume1/resume1.bin
modules/nand/.tmp_versions/
linux-3.10$:
linux-3.10$:
linux-3.10$:
linux-3.10$:git reset --hard
HEAD 现在位于 6db6070 Merge branch 'master' into airplay
linux-3.10$:git st ./
位于分支 airplay
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
drivers/soc/pm/resume1/resume1.bin
modules/nand/.tmp_versions/
- git checkout 不带版本
linux-3.10$:git st ./
位于分支 airplay
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: README
新文件: drivers/soc/pm/resume1/resume1.bin
新文件: modules/nand/.tmp_versions/nand.mod
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: README
修改: REPORTING-BUGS
linux-3.10$:
linux-3.10$:
linux-3.10$:git co ./
linux-3.10$:git st ./
位于分支 airplay
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: README
新文件: drivers/soc/pm/resume1/resume1.bin
新文件: modules/nand/.tmp_versions/nand.mod
- git checkout 带版本
linux-3.10$:git st ./
位于分支 airplay
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: README
新文件: drivers/soc/pm/resume1/resume1.bin
新文件: modules/nand/.tmp_versions/nand.mod
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: README
linux-3.10$:
linux-3.10$:
linux-3.10$:git co HEAD ./
linux-3.10$:git st ./
位于分支 airplay
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
新文件: drivers/soc/pm/resume1/resume1.bin
新文件: modules/nand/.tmp_versions/nand.mod