【Bond带你温故之:】一张图弄懂 Git & Github 与冲突处理

子曰:“吾有知乎哉?无知也。有鄙夫问于我,空空如也。我叩其两端而竭焉。”

目录

前言:

一.与svn相比,git进步在哪里?

二.git add/commit/fetch/merge/pull/push/clone/reflog/reset/checkout 都是做什么?

三.分支出现的目的是什么?

四.git版本何以能反复横跳?无惧文件丢失。

五.冲突和解决冲突是怎么一回事?

六.Git跟Github是同一个东西?

七. 3种使用场景

八.cherry pick


前言:

        本文不是小手册,也不是网文命令搬运,而是知识复盘,其思考过程几乎涵盖所有git关键点。若您尚未详细了解过git,建议先做通篇了解后再服用口味更佳。

开篇8问,尽力所答:

一.与svn相比,git进步在哪里?

        1.1 就性能而言,svn 采用的是增量拼接管理的方式,而 Git 采取了文件系统快照加指针的方式效率更高。

        1.2 就可用性而言,svn 是集中式代码管理,server端崩溃就会忘却前世;git是分布式代码管理,星星之火可以燎原。

        1.3 git使用了hash校验确保代码完整性与可追溯。

二.git add/commit/fetch/merge/pull/push/clone/reflog/reset/checkout 都是做什么?

一图流:

 

三.分支出现的目的是什么?

        3.1 在一个产品生命周期末,分支最终是要合并的;开发过程中也会伴随短暂的分支与合并过程。

        3.2 允许开发团队在工作过程中多条生产线同时推进任务,互不干涉。

四.git版本何以能反复横跳?无惧文件丢失。

不同版本本质上是HEAD指针指向不同的文件快照。

git reflog

git reset --hard [hash]

mutiple branches

五.冲突和解决冲突是怎么一回事?

见图一
 

六.Git跟Github是同一个东西?

git是liunx之父写的版本控制工具;github是远程代码托管中心。也可以是gitlab等其他产品。

是两个东西哈。

七. 3种使用场景

       7.1 集中式master

       7.2 gitflow多分支

       7.3 folk

八.cherry pick

        与merge不同在于,cherry pick仅仅抓取某次commit,并merge到其他分支(通常是master分支)。 这也是某些开发环境里,不能随意使用merge的原因。

        step1.    切换到某一次commit将要合并到的分支

        step2.    git cherry-pick [commit hash value]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值