牛逼哄哄的 Git 命令动画演示,一看就懂!

本文通过动画形式,生动展示了 Git 中的 merge、rebase、reset、cherry-pick、fetch 和 pull 等常用命令的工作原理和操作流程,帮助读者深入理解 Git 分支管理和历史操作,解决合并冲突等问题。
摘要由CSDN通过智能技术生成

原文:CS Visualized: Useful Git Commands
翻译:李中凯

16535373-e5d17850a741f64b.png

虽然 Git 是一个强大的工具,但是我觉得大部分人都会同意我说的:它也可以是一个……噩梦!我一直觉得,使用 Git 的时候把操作过程在脑海里视觉化会非常有用:当我执行某个命令的时候,分支之间是如何交互的?又是如何影响提交历史的?当我在master分支执行hard resetforce pushorigin、在.git文件夹执行rimraf的时候,为什么我的同事都哭了?

我认为创建一些最常见、最实用的命令的可视化示例是最佳使用指南!接下来介绍的这些命令,很多都有可选参数,用于改变命令的行为。文中的示例只讨论命令的默认行为,不会涉及太多的配置选项。这些命令包括 mergerebaseresetrevertcherry-pickfetchpullreflog 等。


merge

多分支可以非常方便地将新的改动互相隔离,并确保你不会意外地将未经批准或破坏性的变更推到生产环境。一旦变更被批准,我们就能在生产分支中得到这些变更。

从一个分支获取变更到另一个分支的方式之一是执行git merge命令。Git 有两类合并操作:fast-forwardno-fast-forward

这么说你可能没什么概念,我们来看看区别吧。

fast-forward (--ff)

如果当前分支与即将合并过来的分支相比,没有额外的提交,这种就是fast-forward合并。Git 很会偷懒,它会首先尝试最简单的方案,即fast-forward。这种合并方式不会创建新的提交,只是把另一个分支的提交记录直接合并到当前分支。

16535373-d4f2e27c2e9e0ab1.gif

没毛病!现在我们在master分支上有了dev分支上的所有变更。那么,no-fast-forward 又是什么呢?

no-fast-foward (--no-ff)

跟即将合并过来的分支比较,当前分支如果没有额外的提交,这固然很好,但实际情况往往不是这样!如果我们在当前分支上也提交了一些改动,那么 Git 就会执行no-fa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值