码迷,mamicode.com
首页 > 系统相关 > 详细

Linux上层应用->git独奏

时间:2016-06-09 22:21:01      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

参考书籍:《git权威指南》

git初始化

设置git基本参数

通常会在用户home目录下创建文件".gitconfig",以类似配置文件的格式来存放设置。

1、设置用户名及邮箱(在提交时会显示这些信息)

git config --global user.name "kcmetercec"
git config --global user.email "kcmeter.cec@gmail.com"

2、git命令输出中打开颜色显示

git config --global color.ui true

3、git config 命令说明

当仅使用"git config"时,代表对当前版本库".git"下的"config"文件进行配置

当仅使用"git config --global"时,代表对当前用户home目录下的".gitconfig"文件进行配置

当仅使用"git config --system"时,代表对"etc"下的"gitconfig"文件进行配置

如同局部变量和全部变量一样,以上优先级由高到低。

格式为:git config [--global/--system] [section].[key] [value]

当没有[value]参数时,代表读取,反之则为写入。

版本库

1、创建版本库

使用创建版本库命令会在当前目录创建一个".git"文件夹,此文件夹既为版本库。而当前目录则称为工作区,

而后的工作就在工作区下进行操作了。

一般情况下,建议先创建好工作区文件夹后,再进入工作区文件夹进行版本库创建。

git init

2、查找版本库及工作区

#显示版本库的位置
git rev-parse --git-dir
#显示工作区根目录
git rev-parse --show-toplevel
#显示当前目录相对于工作区的目录
git rev-parse --show-prefix
#显示当前目录后退到工作区目录的深度
git rev-parse --show-cdup

git结构

git基本结构

技术分享

如上图所示为git基本结构,对应上图做基本命令介绍。

工作区:用户实际操作文件的区域

index:暂存区,保存用户文件的信息结构,用于快速比对文件是否修改,类似于文件系统的inode

master:主分支,保存用户提交文件信息结构,用于快速比对文件是否提交,类似于文件系统的inode

HEAD:分支游标,用于表明当前正在操作那个分支

objects:对象库,用于实实在在存放文件内容的区域,类似于文件系统的block

 

#用于将工作区修改的内容保存到暂存区
git add [file] 
#清除还没有加入版本库的文件及文件夹
git clean -fd #用于将工作区对应的文件撤回到和暂存区一样的状态, #也就是相对暂存区新做的修改都会删除 git checkout [
file] #将暂存区所记录的文件修改都提交至代码库 git commit #将暂存区目录树替换为和HEAD指向的目录树一致,但工作区不受影响 git reset HEAD #删除暂存区的文件,工作区不受影响 git rm --cached [file] #将工作区以及暂存区的文件都恢复为和HEAD指向的分支一致 git checkout HEAD [file]

 

 目录树浏览

1、浏览工作区目录树

使用经典的"ls"指令既可方便浏览

2、浏览暂存区目录树

#依次显示:对象属性 对象类型 对象ID 大小 名称 
git ls-tree -l HEAD

 

3、浏览版本库目录树

#依次显示 对象属性 ID 暂存区编号 名称
git ls-files -s

#要想与版本库显示效果一样需要
git write-tree
git ls-tree -l [xxx]
#xxx表示由"git write-tree"输出的ID值的至少前4位

 

相互比较

技术分享

有以下辅助命令对上面3个区域进行差异状态查看:

#比较暂存区与工作区文件差异
git diff
#比较工作区与版本库差异
git diff HEAD
#比较暂存区与版本库的差异
git diff --cached

#查看文件的提交状态
git status [-s]

 

git对象库

git中所有的对象都有一个ID,此ID用哈希值来表示独一无二的对象。

通过层层解码ID所对应的内容,最终就可以列出整个提交目录的结构以及用户文件的内容。

#-p 用于输出ID所对应的内容
#-t 用于输出ID对象的类型
git cat-file [-p/-t]

 

Linux上层应用->git独奏

标签:

原文地址:http://www.cnblogs.com/KcMeterCEC/p/5571475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!