读书笔记:《Version Control With Git》

地一章 简介git

首先提到了VCS(Version Control System)的基本功能:github

Although the authors and users of each tool might debate esoterics, each system address the same issues: develop and maintain a repository of content, provider access to historical editions of each datium, and record all changes in a log.算法

其次提到了Linus对于BitKeeper的替代品的指望。其实这些指望也能够看做Git的特色:dom

  • Facilitate distributed development(支持分布式开发)
    也就是人们不须要随时的和中心仓库同步。人们能够独立、并行的开发,甚至在一些离线的本地环境中也不会遇到问题。分布式

  • Scale to handle thousands of developers(能够支持上千名开发人员)ide

  • Perform quickly and efficiently(高效)
    相较于集中化的版本控制系统而言,Git每次只保存增量,无疑更有优点。
  • Maintain integrity and trust(保持完整和可信)
  • Enforce accountability(可靠性)
  • Immutability(不变性)
  • Atomic transactions(原子事物)
  • Support and encourage branched development(支持并鼓励分支开发)
  • Complete repositories(完整的代码库)
  • A clean internal design(干净的内部设计)
  • Be free, as in freedom(免费)

那么Git时如何知足这些需求的呢?哪些需求时咱们的平常开发中也会遇到的呢?有哪些最佳实践呢?遗憾的是,这一章中并无进一步进行阐述。学习

Git-Scm的文档中咱们可能找到一些提示:ui

  • Git直接记录快照而不是增量
  • 近乎全部的操做都是本地执行。这一点使得人们能够在离线状态下进行开发。准确的说,不仅是开发,大部分的版本控制操做均可以在离线状态下完成!
  • 时刻保持完整性。这一特性是机遇SHA1加密算法对于每一个对象提供数字指纹来完成的。
  • 多数操做仅添加操做。

接下来,我会带着上面的问题略过第二章(安装),直接进入第三章(开始)进行学习。加密

=======================================
附录一个经常使用的协做开发流程(参与已有项目开发):设计

  • 在Github上fork一个branch
  • Git clone到本地
  • 添加upstream: git remote add upstream (地址),能够经过git remote -v来查看是否添加成功。这主要是为了可以pull到其余人的change。
  • 建立新的分支:git branch branch_name。并切换到对应branch:git checkout branch_name。经过git branch能够查看当前的分支。
  • 开发
  • git add . 添加全部的change。能够经过git status来查看相关状态
  • git commit -m "message"。
  • git push origin branch_name。
  • 在github上发一个pull request
  • code review并重复开发、添加、commit、push的步骤直到被merge。
相关文章
相关标签/搜索