- commit到本地仓库中了,但是还没有做push操作的
1.文件被修改了,但未执行git add
操作(working tree内撤销)
git checkout fileName 或者 git checkout .
2.同时对多个文件执行了git add
操作,但本次只想提交其中一部分文件
git add * git status 取消暂存 git reset HEAD <filename>
3.文件执行了git add
操作,但想撤销对其的修改(index内回滚)
git reset HEAD fileName //取消暂存
git checkout fileName // 撤销修改
4. 修改的文件已被git commit
,但想再次修改不再产生新的Commit
git add last.txt git commit --amend -m "last speaking"
5.已在本地进行了多次git commit
操作,现在想撤销到其中某次Commit
git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]
- 已进行
git push
,即已推送到“远程仓库”中
1.如果打了Tag
git checkout <tag>
2.撤销指定文件到指定版本
git checkout <commitId> <filename>
3.删除最后一次远程提交
方法1:git revert HEAD 然后 git push 这种方法放弃了提交的修改,会生成一次新的提交,以前的历史记录都在
方法2:git reset --hard HEAD^ 然后 git push origin master -f 这种方式历史记录不会出现放弃的提交记录
4.回滚到某次提交
git revert commitID
5.删除某次提交
git rebase -i "commitID"^
赠送一枚练习git 的网站 :https://learngitbranching.js.org/