git resetgit checkout 和 git revert

Posted 彼方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git resetgit checkout 和 git revert相关的知识,希望对你有一定的参考价值。

一、git reset 和 git checkout

git reset [commit]

重置为[commit]所对应节点的提交(通过移动分支指针和HEAD指针实现),如果不指定[commit]则默认为HEAD
--soft 工作区和暂存区不变,重置仓库
--mixed 工作区不变,重置暂存区和仓库,此为默认选项
--hard 工作区、暂存区和仓库全部重置,修改完全丢失

git reset [commit] [file]

重置某个commit的指定文件到暂存区(指定了[file],不会移动分支指针和HEAD指针)
备注:如果不指定[commit]则默认为HEAD,如果参数都不指定则重置暂存区所有文件

git checkout [file]

重置暂存区的指定文件到工作区(file为 . 则表示所有文件)

git checkout [commit] [file]

重置某个commit的指定文件到暂存区和工作区

[commit]:可以为SHA-1值、HEAD,而HEAD~表示HEAD的父节点,HEAD~2表示HEAD的父节点的父节点,以此类推

二、git revert

git revert [commit]

用[commit]所对应节点的提交,创建一个新的反转的提交

三、git fetch 和 git pull

git fetch 仅更新origin\\master分支,需要手动merge
git pull 更新origin\\master分支和当前分支,相当于fetch+merge

四、其他常用命令

git pull --rebase

以变基形式merge远程代码,关于git rebase可参考:https://segmentfault.com/q/1010000000430041

git merge --no-ff develop

以非fast-farward形式merge代码

git log --graph --oneline --decorate --all

绘制ASCII图像并显示提交历史

git checkout -b [本地分支名] [远程名]/[分支名]

基于某个远程分支创建新分支

 

 

以上是关于git resetgit checkout 和 git revert的主要内容,如果未能解决你的问题,请参考以下文章

代码回滚:git resetgit checkout和git revert区别和联系

Git如何checkout远程tag

Git如何checkout远程tag

git基础教程git checkout 对工作目录的影响

git中reset和checkout的总结整理

【Git】checkout 用法总结