Bendi新闻
>
动图展示 10 大 Git 命令,让你轻松掌握Git
动图展示 10 大 Git 命令,让你轻松掌握Git
3月前
作者:Lydia Hallie
来自:机器之心
链接:https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1
git merge、git rebase、git reset、git revert、git fetch、git pull、git reflog……你知道这些 git 命令执行的究竟是什么任务吗?
如果你还有些分不清楚,那千万不能错过这篇文章。
在本文中,熟知 JavaScript、TypeScript、GraphQL、Serverless、AWS、Docker 和 Golang 的 21 岁年轻软件顾问 Lydia Hallie 通过动图形式直观地介绍了这些常用 git 命令的工作过程,包你过目不忘。
为什么当我在 master 上执行硬重启,force push 到原分支以及 rimraf 我们的 .git 文件夹时,我的同事哭了?
当尝试合并这些分支时,Git 会向你展示冲突出现的位置。我们可以手动移除我们不想保留的修改,保存这些修改,再次添加这个已修改的文件,然后提交这些修改。
完成!尽管合并冲突往往很让人厌烦,但这是合理的:Git 不应该瞎猜我们想要保留哪些修改。
在我们正在 rebase 的提交上,我们可以执行以下 6 个动作:
reword:修改提交信息;
edit:修改此提交;
squash:将提交融合到前一个提交中;
fixup:将提交融合到前一个提交中,不保留该提交的日志消息;
exec:在每个提交上运行我们想要 rebase 的命令;
drop:移除该提交。
当我们不想要之前提交的修改时,就会用到这个命令。也许这是一个 WIP 提交或者可能是引入了 bug 的提交,这时候就要执行 git reset。
git reset 能让我们不再使用当前台面上的文件,让我们可以控制 HEAD 应该指向的位置。
软重置
软重置会将 HEAD 移至指定的提交(或与 HEAD 相比的提交的索引),而不会移除该提交之后加入的修改!
假设我们不想保留添加了一个 style.css 文件的提交 9e78i,而且我们也不想保留添加了一个 index.js 文件的提交 035cc。但是,我们确实又想要保留新添加的 style.css 和 index.js 文件!这是软重置的一个完美用例。
输入 git status 后,你会看到我们仍然可以访问在之前的提交上做过的所有修改。这很好,这意味着我们可以修复这些文件的内容,之后再重新提交它们!
有时候我们并不想保留特定提交引入的修改。不同于软重置,我们应该再也无需访问它们。Git 应该直接将整体状态直接重置到特定提交之前的状态:这甚至包括你在工作目录中和暂存文件上的修改。
Git 丢弃了 9e78i 和 035cc 引入的修改,并将状态重置到了 ec5be 的状态。
假设 ec5be 添加了一个 index.js 文件。但之后我们发现其实我们再也不需要由这个提交引入的修改了。那就还原 ec5be 提交吧!
通过在这个远程分支上执行 git fetch,我们就可在本地获取这些修改。这不会以任何方式影响你的本地分支:fetch 只是单纯地下载新的数据而已。
git reflog 是一个非常有用的命令,可以展示已经执行过的所有动作的日志。包括合并、重置、还原,基本上包含你对你的分支所做的任何修改。
假设我们实际上并不需要合并原有分支。当我们执行 git reflog 命令时,我们可以看到这个 repo 的状态在合并前位于 HEAD@{1}。那我们就执行一次 git reset,将 HEAD 重新指向在 HEAD@{1} 的位置。
微信扫码关注该文公众号作者
来源:Linux爱好者
相关新闻
99%的时间里只使用这 14 个 Git 命令就够了!!!保姆教程系列:Git 实用命令详解小长假来袭还没想好去哪?加州8个绝美小众小镇码住,总有一个让你心动!剧本杀天花板!全球首座沉浸式乐园东京开业,10大IP联动,还支持中文互动?大厂都在用的 Git 代码管理规范 !iPhone动嘴10秒P图!UCSB苹果全华人团队发布多模态MGIE,官宣开源人人可玩你应该购买电动汽车吗?关于大额折扣、税收抵免及何时购买的购买指南谷歌版Her大翻车:试了3次且换手机才成功…网友:我手动只需10秒润熙泉抗皱出大招!大油皮千万别看!我怕你心动但又用不了……哪里要动点哪里!腾讯联合清华、港科大推出全新图生视频大模型Facebook为什么要弃用Git?Git严重漏洞,远程执行代码,Mac和Windows通杀!git提交错了?别慌,直接删除提交记录初步上手Git软件及GitHub平台:基本操作方法Airbnb 的 CI/CD 框架引入了 Salesforce DX、Git 和 Buildkite 来提升软件交付效率Git开发人员考虑引入Rust硬核观察 #1247 Git 项目考虑使用 Rust 代码开发学电路,看动图清晰明了,就这么无敌!20个传感器原理动图【太经典了】16张动图讲透网络原理【多伦多单身对对碰】31岁财务经理+25岁爱好户外活动自雇女生,谁令你心动?什么?科技助力小微来啦!一起轻松贷动未来“爱情里,最让你心动的瞬间是什么?”买电动车你后悔了吗?美国已经有近半电动车主希望换回燃油车