凌云的博客

成功=工作+游戏+少说空话

跟我一起学Git (一) 入门

分类:Git| 发布时间:2014-02-17 23:35:40


Git简介

Git是一个分布式的版本管理系统。

Git是根据UNIX toolkit哲学(每个工具只做一件事,并把这件事做好)编写出来的。 Git是由许多命令组成的,比如git-commit和git-log,而这些所有的命令都可以通过git命令来执行。 因此,git commit等价于git-commit

安装Git

Git支持多种平台,你可以到 http://git-scm.com/download 下载最新的安装包。

快速入门

下面让我们通过一个简单的例子来快速了解下如何使用Git:

1. 初始化版本库
要使用Git的功能,首先要创建Git版本库。 可以通过git init命令将当前目录转换为Git版本库

$ mkdir ~/src/public_html
$ cd ~/src/public_html/
$ echo 'My website is alive!' > index.html
$ git init
Initialized empty Git repository in /home/cjl/src/public_html/.git/

2. 添加文件到版本库
可以通过git add命令添加文件到版本库中。

$ git add index.html

要将修改提交,需要使用git commit命令

$ git commit -m "inital contents" --author="Jianlong Chen <test@gmail.com>"

可以通过git status查看版本库当前的状态

3. 配置提交者信息(Configuring the Commit Author)
初始情况下,在每次提交的时候,你都需要设置,这次提交的用户的信息。 很明显的是,这很烦人,幸好的是Git提供了指定默认的提交者信息的方法:

$ git config user.name "Jianlong Chen"
$ git config user.email "test@gmail.com"

这样就设置了默认的用户名和邮箱地址,不用每次提交都指定了。 当然,你也可以通过GIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL环境变量来指定用户名和邮箱地址。 如果设置了这两个值,通过git config设置的用户名和邮箱地址将会被覆盖

4. 查看你的提交(Viewing Your Commits)
Git提供了以下命令用来查看已有的提交:

$ git log           # 查看提交日志
$ git show commit_id # 查看提交的详细信息
$ git show-branch --more=10 # 查看最近的10次修改

5. 查看提交的差异(Viewing Commit Differences)

$ git diff commit_id1 commit_id2 # 比较两次提交的差异

通常情况下是commit_id1为较早的提交,而commit_id2为较晚的提交

6. 删除和重命名代码库中的文件(Removing and Renaming Files in Your Repository)

$ git rm <path> # 删除文件
$ git rename <old_name> <new_name> # 重命名文件

7. 克隆代码库(Making a Copy of Your Repository)

$ git clone <src_path> <dst_path>

克隆一个版本库,类似于将整个版本库复制到另一个目录, 不同的是,git clone支持更多的特性,比如支持复制网络上的版本库到本地

配置文件(Configuration Files)

git提供了不同层次的配置文件,按照优先级从高到低排序,它们分别是:

  • .git/config 可以用git config设置,git config --unset删除
  • ~/.gitconfig 可以用git config --global设置,git config --unset --global删除
  • /etc/gitconfig 可以用git config --system设置,git config --unset --system删除

这些配置文件都是ini格式的配置项,因此可以以纯文本的形式访问

可以通过以下命令列出所有的当前配置项

$ git config -l

许多配置选项和环境变量都是为了相同的目的而存在,比如说提交时要你输入提交信息使用的编辑器由以下的配置或环境变量确定:

  1. GIT_EDITOR环境变量
  2. core.editor配置选项
  3. VISUAL环境变量
  4. EDITOR环境变量
  5. vi命令

配置别名
例如:

$ git config --global alias.log-id 'log --format=format:%H'

以后就可以用git log-id 代替 git log --format=format:%H