安装
安装:
tar xzvf git-1.8.2.3.tar.gz
cd git-1.8.2.3
./configure
make
make install
配置环境变量:
vi /etc/profile
export PATH=/usr/local/git/bin:/usr/local/git/libexec/git-core:$PATH
或者:
vi ~/.bashrc
export PATH=/usr/local/git/bin:/usr/local/git/libexec/git-core:$PATH
基本命令
①. 查看帮助:
git --help
②. 查看版本:
git --version
③. 查看安装目录:
where is git
④. 设置用户名和电子邮件地址:
在使用GIT之前,你需要面对GIT来一番自我介绍。Git 不喜欢不愿透漏姓名的人,因为它要求每个人在向仓库提交数据时,都应当承担一定的责任。
要向Git 进行自我介绍,请使用以下命令:
git config --global user.name "ROCKY"
git config --global user.email "ROCKY@CLONE01.CN"
查看配置信息:
git config --list
⑤. 查看.git的信息:
ll .git/
hooks:存储钩子的文件夹;
logs:存储日志的文件夹;
refs:存储指向各个分支的指针(SHA-1标识)文件;
objects:存放GIT对象(包含了项目中的所有对象,我们不必直接地了解到这些对象内容,我们应该关心是存放在这些对象中的项目的数据);
config:存放各种设置文档;
HEAD:指向当前所在分支的指针文件路径,一般指向refs下的某文件。(HEAD 文件中的内容其实只是包含了一个索引信息,并且这个索引将总是指向你的项目中的当前开发分支,通过命令:cat .git/HEAD 可以查看。)
工作流程
①. 更新数据:
获取最新数据(可能会有冲突需要合并)
目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。
git pull
②. 添加文件:
生成快照并暂存到索引中
GIT在向仓库中添加文档时并非是简单地将文档复制过去,而是将所添加文档进行一番处理,生成GIT仓库所能接受的数据格式,GIT称这个过程为"take a snapshot(" 生成快照)。
git add *.java // 按通配符的形式添加文件
git add README.md // 添加指定的文件
git add 不但可以添加不在版本控制中的新文件,也用于添加已在版本控制中但是刚修改过的文件; 在这两种情况下,GIT都会获得当前文件的快照并且把内容暂存(stage)到索引中,为下一次commit做好准备。
③. 提交文件:
将快索引提交到本地仓库中
所生成的快照被存放到一个临时的存储区域,GIT称该区域为索引。使用git commit 命令可将索引提交至仓库中,这个过程称为提交,每一次提交都意味着版本在进行一次更新。
git commit
执行git-commit 命令时,GIT会自动调用系统默认的文本编辑器,要求你输入版本更新说明并保存。输入简约而又意义明确的版本更新说明是非常有必要的,可以帮助你快速回忆起对项目的重大改动。
对于简短的版本更新信息,可以使用git-commit 的“-m”选项,如下:
git commit -m "你的待提交的版本描述信息"
下面这条指令会把所有内容被修改的文件(不包括新创建的文件)都添加到索引中,并且同时把它们提交到仓库中。
git commit -a -m "你的待提交的版本描述信息"
④. 推送文件:
提交到远程仓库
git commit只是提交本地仓库,git push 是提交到远程仓库
git push
或者
git push origin master
高级命令
①. 忽略提交规则:
在生成文档内容快照时,工作树中有一些文档是你不希望接受GIT管理的,譬如程序编译时生成的中间文件,对于这样的文件如何避免为之生成快照?譬如在工作树中存在以下子目录:
doc tmp ipc drivers fs
其中的tmp 目录存放着文档编译时生成的中间文件,因此该目录不应该被GIT所管理。为解决此类问题,GIT提供了文档忽略机制,可以将工作树中你不希望接受Git 管理的文档信息写到同一目录下的.gitignore 文件中。对于本例中的tmp 目录,采用如下操作可将其排除仓库之外,然后再对project 生成快照即可。
echo “tmp” > .gitignore
②. 查看文件编辑前后有什么不同:
git diff
③. 查看每次提交的版本号
git log
或者
git log --stat --summary
④. 查看版本提交的细节
git show 版本号
每一个版本都对应着一次项目版本更新提交。在项目日志信息中,每条日志的首行(就是那一串莫名奇妙的数字)是版本更新提交所进行的命名,我们可以将该命名 理解为项目版本号。项目版本号应该是唯一的,默认由GIT自动生成,用以标示项目的某一次更新。通过版本号可查看该次项目版本的更新细节。
另外,还可以:
git show HEAD # 显示当前分支的最新版本的更新细节,每一个项目版本号通常都对应存在一个父版本号,也就是项目的前一次版本状态。
# 可使用如下命令查看当前项目版本的父版本更新细节:
git show HEAD^ # 查看HEAD 的父版本更新细节
git show HEAD^^ # 查看HEAD 的祖父版本更新细节
git show HEAD~4 # 查看HEAD 的祖父之祖父的版本更新细节