/ 闲敲棋子 / Git基础学习

Git基础学习

2012-03-12 posted in [学习笔记]

总说整理一下git的培训,一直被拖延症困扰。这下好,趁着“被加班”,好好总结整理一下培训成果。嗯,其实总结和整理比盲目的学新东西要重要的多了。

以下摘自罗童鞋培训ppt:

Git 的特性

文件的三种状态

2011061711422217.png

已提交(committed)– 本地仓库(repository)

已暂存(staged)– 暂存区域(staging area)

已修改(modified)– 工作目录(working directory)

文件流转区域

git-transport.png

文件的流转过程

  1. 在工作目录中修改某些文件。(对应状态为已修改,用git status命令查看为modified下列出文件,此时如要保存修改,应add进暂存区)
  2. 对修改后的文件进行快照,然后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。(commit命令提交的是暂存区中文件,没有add进暂存区的修改不会被提交)

Git常用操作:

流程:取代码 → 每次工作前更新代码到最新版本 → 修改代码 → 提交代码到服务器 (这个应该是要养成的习惯吧,否则很容易造成冲突^^)

配置git的用户信息

$ git config --global user.name
$ git config --global user.email

此时配置的分别是你个人的用户名称和电子邮件地址, 将在commit log中体现.

–global选项为全局配置, 将会成为默认设置, 在所有git项目中生效. 此时设定信息保存在用户主目录的.gitconfig文件中.

如果只想在单个git项目中配置, 去掉–global即可, 此时设定信息保存在.git/config文件中

查看配置信息

要查看已有的git配置信息, 可以使用 git config –list命令,或者查看具体属性值.

$git config user.name  #查看配置的用户名称

创建一个版本库:git-init-db

$ mkdir gittutorcn
$ cd gittutorcn
$ git-init-db

要对现有的某个项目开始用git管理, 只需在项目的顶级目录执行git init

$git init 或 git init –bare

加上–bare选项时只初始化一个git目录, 不保存项目文件. 通常用来作为中心库.(即远程服务器端用于控制大家版本同步的那个库)

clone一个远程仓库

$git clone @:/.git []

如果不指定<projectname>, 默认使用<path>命名

检查当前文件状态

要确定哪些文件当前处于什么状态,可以用 git status 命令.

在取得一个git仓库后, 执行git status会看到如下界面:

git-status.png

存在以下三种状态

查看提交历史

git log查看提交历史

在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看。

默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面

git-log.png

包含以下信息内容:

  1. commit hash(SHA-1 校验和) (这个hash值可以看做此次commit的唯一标示,以后进行reset、checkout的时候可以通过此id定位到具体哪次提交)
  2. 作者的名字和电子邮件地址
  3. 提交时间
  4. 最后缩进一个段落显示提交说明 (也就是每次提交时的那个附注信息~应该养成好习惯把提交信息说明清楚,以方便进行版本控制)

使用图形化工具查阅提交历史:

Git的基本操作: