常用GIT命令
git reset -q
注意不可使用 git reset --hard,本地文件会被替换,后悔莫及
git reset --soft HEAD^
--soft 不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --mixed HEAD^
或 git reset HEAD^
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作 这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
- 删除本地分支 git branch -d [branchname]
- 删除远程分支 git push origin --delete [branchname]
git checkout .
git rebase -i HEAD~5 (合并最近五次提交)
//当合并出错时 进行fix
git rebase --edit-todo
//fix完成之后
git rebase --continue
git init
git remote add origin https://github.com/wjq1994/react-learn.git
git add .
git commit -m ''
git push -u origin master
合并commit
- 本地
git rebase -i HEAD~3
- 远程
git push -f origin develop
git stash //暂存
git stash save '描述' //暂存并添加描述
git stash list //暂存记录
git stash pop //取出暂存第一条并删除
git stash drop stash@{0} //删除指定暂存
git stash apply stash@{0} //取出指定暂存不删除
git remote prune origin
git reflog --date=iso
git checkout -b recovery_branch_name commitid
git push origin recovery_branch_name
git reset 原理是移动HEAD指针,HEAD时间线之后的版本都将去掉(git log可以发现)
可以通过git reflog命令查看历史操作记录,进行恢复HEAD时间线之后的版本
提交远程是git push -f
但是其他人从远程仓库拉下来的代码就看不到HEAD时间线之后的版本了, 就算知道HEAD时间线之后的版本id也无法操作
git revert -n 相当于是生成了新的版本
提交远程是git push