git版本仓库知识分享 (http://zh.wikipedia.org/wiki/Git)

 
基础概念
 
Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。
 
git基础命令使用
 
创建一个版本库
 
git init 
Initialized empty Git repository in /path/.git/
这时会产生一个空的版本库,在当前的目录下面会有一个隐藏目录/.git,其中文件的含义是
hooks 存储钩子的文件夹
logs 存储日志的文件夹
refs 存储指向各个分支的指针(SHA-1标识)文件
objects 存放git对象
config 存放各种设置文档
HEAD 指向当前所在分支的指针文件路径,一般指向refs下的某文件
 
拉取版本仓库代码
 
git pull ssh://githosts/project/path
git clone ssh://githosts/project/path
githosts:是git的server ip地址,加上拉取项目的路径。
以上两条命令都可以把目前服务器上的项目拉取到本地
 
 
提交代码
 
开发人员在本地更改了相关代码之后,提交代码的操作
git add test.txt
git commit test.txt
以上先通过add标记改test的文件是需要提交到服务器的,然后通过commit命令提交。可以通过
git status
来查看目前分支下的状况,是否有文件更改之后没有提交。
git commit -a -m "first commit "
以上的命令添加-a的参数直接代替之前的add命令
git push  git@githosts:project/path master
push的命令用于提交到远程git服务器。
 
创建分支
 
git branch
改命令显示目前有多少分支,以及你正处于当前的哪一个分支上面
git branch test
git checkout test
以上命令创建了test的分支,checkout是切换分支的意思,因为本身你在master上面创建了test的分支,但是默认你还是在master上面,通过checkout切换到test分支上面
git checkout -b test
添加-b的参数是创建分支,并且切换到test上面
 
合并分支
 
经过以上创建的test分支,我们更改完成,需要和主分支master合并
git checkout master
git merge test
切换到主分支,然后通过merge命令,合并进来test的分支。
合并分支容易出现冲突问题,因为如果俩个分支都对同一个文件做了更改,那么在合并的时候,需要手动来解决冲突。通过git status来查看目前分支是否有未提交的文件,如果存在,先提交文件,然后在合并分支,一般会解决问题。
 
删除分支
 
git branch -d test
分支合并之后,那么可以删除没有用处的test分支。-D是强制删除
 
查看git的提交记录
 
git log
通过git log可以查看代码的提交记录。
git show
git status
会经常的使用来查看提交记录以及目前有多少代码处于未提交状态!