git 版本回退
- HEAD版本指向当前版本,git允许在历史版本之间穿梭;
- 回退前,使用git log 查看提交记录,确定要回退的版本;
- 回退到指定版本以后,之后的提交记录,使用git log将不在记录。如需还原之后指定版本,需使用git reflog,查看命令历史,以便确定要回到未来的哪个版本;
回退到指定版本:git reset --hard commit_id
回退到上一个版本:git reset --hard HEAD^
回退到上上版本:git reset --hard HEAD^^
回退到100个提交前版本:git reset --hard HEAD~100
撤销工作区修改:git checkout -- file / git checkout . (全部)
暂存区回到工作区:git reset HEAD <file> / git reset HEAD (全部) 、 git restore --staged
版本库回滚到工作区:git reset --mixed 上一次提交版本id,并保留本次提交修改记录
版本库回滚到暂存区:git reset --soft 上一次提交版本id,回滚到暂存区保留修改记录
// 注:上一次提交版本id,本次提交版本之前的版本
1.没有git add时,用git checkout -- file
2.已经git add时,先git reset HEAD <file>回退到1.,再按1.操作
3.已经git commit时,用git reset回退版本
分支
查看分支:
查看本地分支:git branch
查看远程分支:git branch -r
查看所有分支:git branch -a
创建、切换分支
创建分支:git branch <name>
切换分支:git checkout <name>或者git switch <name>
创建并切换分支:git checkout -b <name> 或者 git switch -c <name>
推送分支到远程:git push <name>
同步本地及远程分支:git branch --set-upstream-to=origin/<name>
删除分支
删除本地分支:git checkout -d <name>
删除远程分支:git push origin --delete <name>
合并分支
合并分支:git merge <name>
解决冲突
解决冲突
git add readme.txt
git commit -m "conflict fixed"
其他命令
查看工作区和版本库里面最新版本的区别:git diff HEAD -- readme.txt
查看分支合并图:git log --graph
复制某个分支的提交内容到另一个分支:git cherry-pick <commit>