zoukankan      html  css  js  c++  java
  • 理解学习git

    觉得 git 复杂是因为学习 git 进入了误区。

    恰恰相反,和SVN之类过度设计的CVS不同,git在设计上是非常简单的。在极其简单清晰,甚至可以说暴力美学的基础架构之上提供了极大的灵活性——这些灵活性使得 git 有非常多的命令和选项,可以做到许多其它CVS不能做到的事情。

    学习 git 不应该从 git 命令和用例开始学习,那样会陷入茫茫多的 git 命令和选项中无法自拔。没有人学习C语言是从学习一万个C语言写成的程序开始学习。

    学习 git 的正确方法是先了解 git 是如何设计和实现的,它在磁盘上有哪些文件?分别做什么用?为什么要这样设计?然后自然就知道“当我想做一件事的时候,我需要 git 去为我做什么”。剩下的事情只是要用的时候翻翻相关命令的帮助就可以了,用多了自然就熟了。

    免费的 git 书籍推荐 pro git,收费书推荐 git pocket guide,更加简明清晰

    作者:知乎用户
    链接:https://www.zhihu.com/question/349732913/answer/852554195
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     

    Git的复杂度在于:

    1. 整个代码管理系统中有3份代码: workspace(IDE中的代码)、本地仓库、远程仓库

    2. 在一个分支上,会有不同的user push、pull代码,每个人代码之间可能会冲突。

    3. 整个代码管理系统中有N个分支,不同分支之间存在 checkout、merge等操作(SVN也一样)

    运用场景:

    1. 多个人在同一个分支上开发代码,这是最basic的操作吧。

    2. 不同环境的发布,依赖相对独立分支的代码。一个项目要分 dev、test、uat、prod环境,这是最basic的操作,但是要保证 test是基于dev,uat是基于test、prod是基于uat,所以必然存在跨分支的代码管理。

    3. 项目要2个相对独立的不同的功能,这两个功能的上线时间也不同,所以如果在一个分支上开发,必然面临A功能ready了,但是包含了B功能的代码,但是B功能的代码还没ready,如果直接上线,有bug,除非等到B功能也开发好,再一起上线。所以在业务上,需要多分支并行开发,然后到某个时间节点,merge不同分支的代码


    作者:黄靠谱
    链接:https://www.jianshu.com/p/65043eeb5501
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    设计模式(二)
    关于ICO
    js的中关于类的应用
    接口的实现顺序学习笔记[2]
    接口的继承学习笔记[1]
    设计模式(一)
    四种领域模型
    路径问题!!
    异步调用模式学习记录
    转:四人帮设计模式
  • 原文地址:https://www.cnblogs.com/mintsd/p/13057632.html
Copyright © 2011-2022 走看看