您的位置:首页 > 其它

git 文件回滚,比较差异命令拾遗

2017-11-06 16:11 686 查看
git reset命令
提交层面git reset commitId

文件层面

git checkout命令
提交层面git checkout branchName

文件层面git checkout commitId file

git checkout 和git reset 的区别

git revert

git diff
比较工作目录与暂存区文件

比较暂存区和提交历史的文件

比较工作目录和提交历史的文件

比较两个分支的最新提交历史

简要显示比较记录

参考来源

首先先再梳理下git仓库的组成,方便接下来命令的介绍。

在本地,git仓库分为三个部分,工作目录(workspace/working directory),暂存区(index/stage),和提交历史(local reposiotry/commit history/HEAD)

附图说明一般git提交流程,文件在这三个部分的流转

(

)

git reset命令

可对提交或者对文件操作

提交层面:
git reset commitId

可令当前分支下提交历史的head指针回退到指定的commit节点

文件层面:

git reset <file>
:可令暂存区的指定文件修改移除掉(不影响工作目录)

git reset <commitId> [file]
:可令指定提交记录的指定文件恢复至暂存区

git checkout命令

可对提交或者对文件操作

提交层面:
git checkout branchName

可令HEAD指针从当前分支切换到指定分支的最新提交

文件层面:
git checkout <commitId> [file]

可令当前分支指定提交历史的文件还原至工作目录(不影响add到暂存区的修改)

git checkout 和git reset 的区别

git reset 会令提交历史丢掉

git revert

相比于reset,revert保留提交记录,可用于在公共分支上回退提交记录

revert只有提交层面的用途:
git revert commitId


git diff

用于不同部分,不同分支比较文件的不同

比较工作目录与暂存区文件

git diff (不加参数)

比较暂存区和提交历史的文件

git diff –cached/staged

比较工作目录和提交历史的文件

git diff HEAD

比较两个分支的最新提交历史

git diff branch1 branch2

简要显示比较记录

git diff –stat

参考来源

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

git diff命令详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: