《pro git》学习手记

本文详细介绍了Git的基础概念,如本地版本控制系统、集中版本控制系统、分布式版本控制系统等,并阐述了Git存储方式、操作流程以及基本的工作流程。同时,文章强调了用户在安装Git后设置用户名和邮箱的重要性,以及如何配置编辑器、diff工具等。此外,还提供了查看设置和获取帮助的方法。

是从 http://progit.org/看的。将自己认为应该注意的地方记录下。

 

book-big.jpg

Support this site by buying a print version of the Pro Git book.

第一章

1.1关于版本控制

1)本地版本控制系统

18333fig0101-tn.png

2)集中版本控制系统

18333fig0102-tn.png

3)分布式版本控制系统

18333fig0103-tn.png

Git基础

快照而不是改变(snapshot not difference)

18333fig0104-tn.png

其他的系统存储每一个文件基于最初版本改变的数据

18333fig0105-tn.png

Git存储项目的快照

Git的操作几乎每一个都在本地进行

Git具有完整性

Git中所有的东西在存储前都会进行校验,然后被那个校验码引用。也就是说你不可能改变文件或目录的内容而不让Git知道。Git使用的校验机制是SHA-1 。

Git通常只添加数据

三种状态

注意了,如果你想让接下来的学习更轻松一点的话,这是你了解Git最重要的部分。在Git里,你的文件可以处于三种主要的状态:committed, modified, 和staged。Committed意味着你的数据已经被安全的存储在你的本地数据库里了。Modified意味着你已经修改了文件但是还没有提交到数据库里。Staged意味着你在当前的版本中已经标记了一个修改过的文件,接下来就是提交了。

一个Git工程中有三个主要的section:the Git directory, the working directory, and the staging area.

18333fig0106-tn.png

The Git directory是存储工程元数据和对象的数据库。这是Git中最重要的部分,从另一台电脑clone a repository就是拷贝的它。

The working directory是从工程中check out出来的一个单独的版本。这些文件是从The Git directory中pulled out出来的经过压缩的数据库,它存在你的硬盘上供你使用或修改。

The staging area是一个简单的文件,它包含你下一次提交的信息。这个文件通常包含在你的Git directory里。它有时被称为索引,但是它的标准叫法是临时区域(staging area)。

Git大概的基本工作流程:

1、你在working directory里修改文件

2、你stage文件,将它们的快照添加到staging area里

3、你commit一下,这将会拿staging area里的文件并且将这个快照永远存储在Git directory里

如果一个文件在Git directory里有一个特定的版本,那么它就是committed。如果它被修改了,但是已经被添加到staging area里了,那么它是staged。如果它从check out出来后已经被改变了,但是没有staged,那么它就是modified。在第二章,你将会更深入了解这些状态,以及如何利用它们,或者如何完全跳过staged部分。

首次安装

配置

  • /etc/gitconfig: 包括所有用户所有库的配置。如果你对 git config指定选项 --system , 它就会从这个文件读取信息。
  • ~/.gitconfig: 特定用户。 可以让Git读写这个文件通过指定选项 --global.

  • 在git directory里的配置文件(也就是, .git/config) 你当前使用的库里的: 只是对这个库起作用.每一个层次都会覆盖前面的一个,所以.git/config 将会覆盖/etc/gitconfig

身份标识

安装完Git后的第一件事情就是设置用户名和Email。这很重要,因为每次提交Git都会使用这些信息。它将会一直留在你提交的信息里。

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

编辑器

$ git config --global core.editor emacs

diff工具

$ git config --global merge.tool vimdiff

Git 支持 kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff 。也支持自定义的工具。

查看设置

$ git config --list
user.name=Scott Chacon
user.email=schacon@gmail.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

查看指定的键值使用 git config {key}:

$ git config user.name
Scott Chacon

获得帮助

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

you can try the #git or #github channel on the Freenode IRC server (irc.freenode.net) for in-person help。

---end chapter 1

转载于:https://my.oschina.net/orion/blog/17728

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值