快捷搜索:  汽车  科技

git的命令总结:git命令的进阶和复习,带动图效果,

git的命令总结:git命令的进阶和复习,带动图效果,5. 还原(revert)使用 git status 查看,发现当前操作空间空空如也。Git 丢弃了 9e78i 和 035cc 两次提交引入的修改,将仓库重置到 ec5be 时的状态最大的特点:撤回到特定提交之后,已有的修改会保留以下图为例:9e78i 提交添加了 style.css 文件,035cc 提交添加了 index.js 文件。使用软重置,我们可以撤销提交记录,但是保留新建的 style.css 和 index.js 文件。最大的特点:无需保留提交已有的修改,直接将当前分支的状态恢复到某个特定提交下,,硬重置还会将当前工作目录(working directory)中的文件、已暂存文件(staged files)全部移除

现在 bugFix 分支上的工作在 master 的最顶端,同时我们也得到了一个更线性的提交序列。rebase之后,唯一的问题就是 master的HEAD位置还没有更新。所以需要【将master的HEAD移动到bugfix的HEAD

~ git:(bugFix) ✗ git checkout master~ git:(master) ✗ git merge bugFix 或者git rebase bugFix

git的命令总结:git命令的进阶和复习,带动图效果,(1)

由于篇幅原因,有兴趣的可以在了解下交互式变基,交互式变基修改commit,如commit的合并、顺序调整、commit的提交日志修改。

4. 重置(reset)

撤销变更方式有两种。其中一种就是git reset(控制当前分支回撤到某次提交时的状态。),这个部分这篇文章小姐姐用动画图解Git讲的相对好一些

4.1 软重置

最大的特点:撤回到特定提交之后,已有的修改会保留

以下图为例:9e78i 提交添加了 style.css 文件,035cc 提交添加了 index.js 文件。使用软重置,我们可以撤销提交记录,但是保留新建的 style.css 和 index.js 文件。

git的命令总结:git命令的进阶和复习,带动图效果,(2)

4.2 硬重置

最大的特点:无需保留提交已有的修改,直接将当前分支的状态恢复到某个特定提交下,,硬重置还会将当前工作目录(working directory)中的文件、已暂存文件(staged files)全部移除

git的命令总结:git命令的进阶和复习,带动图效果,(3)

使用 git status 查看,发现当前操作空间空空如也。Git 丢弃了 9e78i 和 035cc 两次提交引入的修改,将仓库重置到 ec5be 时的状态

5. 还原(revert)

虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的,所以要使用revert

最大的特点:用于还原某次提交的修改时,会创建一个包含已还原更改的 新提交记录

比如:我们在 ec5be 上添加了 index.js 文件。之后发现并不需要这个文件,可以执行git revert ec5be指令还原之前的更改

git的命令总结:git命令的进阶和复习,带动图效果,(4)

新的提交记录 9e78i 还原了 ec5be 引入的更改。git revert 可以在不修改分支历史的前提下,还原某次提交引入的更改

6. 检出提交(cherry-pick)

如果某个分支上的某次提交的修改正是当前分支需要的,那我们可以使用 git cherry-pick命令检出某次的提交更改 作为新的提交添加到当前分支上面

//命令形式为:git cherry-pick <提交号>...

比如:dev 分支上的 76d12 提交添加了 index.js 文件,我们需要将本次提交更改加入到 master 分支,那么就可以使用 git cherry-pick 76d12单独检出这条记录修改。

git的命令总结:git命令的进阶和复习,带动图效果,(5)

猜您喜欢: