1.放弃本地更改,未add,未commit
git checkout filename
注:与git checkout branch 区别
2.放弃已add未commit的更改
git reset HEAD filename ---------------只是撤销add 操作,本地修改不会丢失
3.放弃已经commit的修改
git reset --hard HEAD^ ----------------回到上次commit的状态
git reset --hard HEAD^^ ------------------回到前两次提交
git reset --hard commitid
4.放弃已经push的修改
1>git reset HEAD --------------------只是把HEAD指针向后移动
2>git revert commitID --------------------提交一个新的版本,将之前的版本覆盖当前的版本,版本会递增,不影响想要放弃的已push的修改,而revert之后的版本递增,但是push的内容还在,只是存在于上一个版本
git reflog -------------查看commit日志
git reset --hard commitid ---------------回到commitid (回退本地的commit)
git config --list
设置git提交用户
git config --global user.email xxx@xxx
git config --global user.name xxx
撤回已经push的提交:
git log
找到commit的版本号;git reset --hard <版本号>
,撤回到需要的版本;(git reset --hard HEAD^)git push
重新提交会报错;git push --force (or git push -f origin master)
修改 commit 注释信息(未push):
1. 修改上一次commit 的信息:
git commit --amend
2. 修改历史commit:
git rebase -i HEAD~[id] --> 改 pick 为edit --> 保存退出 --> git commit --amend --> 修改 保存 退出 --> git rebase --continue
delete tag:
error records:
git push rejected by YACC , error:expected committer name '' not found ''
solution: git config --gloabal user.name ""
git commit --amend --reset-author
git push
将文件移出暂存区:
git reset HEAD -- path/filename
untracked files:
git restore --staged path/file