1.git checkout -- 文件
撤销对工作区某文件的修改。
git checkout .
撤销本地所有修改的、没有提交的文件的修改,都返回到原来的状态。
2.git reset --hard [commit]
将工作区和暂存区的内容强制修改为commit时本地代码库的状态。
3.git reset --mixed [commit]
将暂存区的内容强制修改为commit时本地代码库的状态,工作区的内容不变。
4.git reset --soft [commit]
将本地代码库的内容修改为commit时的状态,暂存区和工作区的内容不变。
5.git revert [commit]
1)当commit为常规commit,非merge commit时
将选择的某一次提交撤销,撤销后会生成一个新的commit,撤销掉的提交记录仍然存在。
2)当commit为merge commit时
merge commit代表有多个分支进行了合并,若直接使用 git revert <commit id>,git 也不知道到底要撤销哪一个分支上的内容。这时需要指定一个 parent number 标识出"主线",主线的内容将会保留,而另一条分支的内容将被 revert。
从 git show <commit id>命令的结果中可以看到,merge commit 的 parent 分别为 a111111 和 b222222,其中 a111111 代表 master 分支,b222222 代表 另一个 分支。需要添加 -m 选项以代表这次 revert 的是一个 merge commit。-m 选项接收的参数是一个数字,数字取值为 1 和 2,也就是 Merge 行里面列出来的第一个还是第二个,其含义用来保留哪个分支。
例如:
git revert -m 1 ab82453
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!