head index(stage) wroking 图示
一:撤销添加到add,但是还没有commit的文件
git reset 撤销add中所有的
git reset HEAD FILENAMEgit reset filename 也可以
二:追加文件到还没有push的commit中
$ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend三:撤销还没有push的commit的修改
先git log 找到要回退的hash
在 git reset --参数(如下) hash_id
如果不加参数的话 仓库和暂存区回退,本地不变
$ git reset -h usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>] or: git reset [-q] <tree-ish> [--] <paths>... or: git reset --patch [<tree-ish>] [--] [<paths>...] -q, --quiet be quiet, only report errors --mixed reset HEAD and index //仓库和暂存区回退,本地不变 --soft reset only HEAD //仓库回退,暂存区和本地不变 --hard reset HEAD, index and working tree //仓库,暂存区和本区全部回退 --merge reset HEAD, index and working tree //仓库,暂存区和本区全部回退 --keep reset HEAD but keep local changes //字面意思是本地不变,但是实测本地回退了,所以慎用 -p, --patch select hunks interactively -N, --intent-to-add record only the fact that removed paths will be added later
