您的位置:首页 > 其它

活灵活现用Git-基础篇

2010-06-01 16:02 211 查看
Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。Git是最初被Linux Torvalds开发用来管理Linux内核的。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。

许多开源项目包括Linux kernel, Samba, X.org Server, Ruby on Rails,都已经过渡到使用Git作为自己的版本控制工具。对于喜欢写代码的开发者来说,Git带来两点最大的好处:一是可以在热河地点提交自己的代码和查看代码版本;二是可以开很多分支去实践我们的想法,而合并这些分支的开销几乎可以忽略不计。

本人的章节从介绍Git的基本命令和操作,Git版本库的初始化,基本操作和独有的常用命令三部分着手。

【版本库初始化】

git clone:当你已经有一个远程的Git版本库,只需要本地克隆一份,如“git clone git://github.com/someone/some_project.git myproject”,这个命令是将“git://github.com/someone/some_project.git”这个URL地址的远程版库完全克隆到本地myproject目录下面。

git init和git remote:当你在本地创建了一个工作目录,进入该目录,使用“git init”进行初始化,Git以后会对该目录下文件进行版本控制。这时如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把URL记录下来,此时你就可以使用“git remote add”来增加一个远程服务器端,如“git remote add origin git://github.com/someone/another_project.git”,这个命令会增加URL地址为“git://github.com/someone/another_project.git”,名称为origin的远程服务器,以后提交代码的时候,只需要使用origin别名即可。

【基本命令】

git pull:从其他的版本库(远程或本地库)将代码更新到本地,如“git pull origin master”是将origin这个版本库的代码更新到本地的master主枝。

git add:将当前更改或新增的文件加入Git的索引中,加入到Git的索引就表示记入了版本历史里,这也是提交之前需要执行的一步,如“git add app/model/user.rb”会增加“app/model/user.rb”文件到Git的索引。

git rm:从当前的工作空间和索引中删除文件,如“git rm app/model/user.rb”。

git commit:提交当前工作空间的修改内容,如“git commit -m "2010-6-1 modified" ”。提交时必须用-m来输入一条提交信息。

git push:将本地commit的代码更新到远程版本库中,如“git push origin”。

git log:查看历史日记。

git branch:对分支的增、删、查等操作。如“git branch new_branch”会在当前的工作版本创建一个名为new_branch的分支,“git branch -D new_branch”会强制删除名为new_branch的分支,“git branch”会列出本地所有的分支。

git checkout:作用一是在不同的branch之间切换,如“git checkout branch1”,切换到branch1分支。作用二是还原代码,如“git checkout app/model/user.rb”,会将user.rb文件从上一个已提交的版本中更新回来,未提交到部分会全部回滚。

git reset:将当前的工作目录完全回滚到指定的版本号。

git tab:将某个工具的版本打上一个标签,这样就不要记忆复杂的版本号哈希值了。

【目录结构】

Git之所以能够提供方便的本地分支等特征,与它的文件存储机制有关。在代码根目录下有一个名为.git的目录,该目录有如下主要文件:

branches hooks info logs objects refs FETCH_HEAD HEAD config description index

其中,HEAD文件存放根节点的信息;

refs目录存储了你在当前版本控制目录下的各种不同引用,它有heads、remotes、stash、tags四个目录,分别存储对不同根、远程版本库、Git栈和标签的四种引用。可以通过“git show-ref”清晰查看引用信息;

logs目录根据不同的引用存储了日记信息。

原文地址:http://phoenixtoday.blogbus.com/logs/33458940.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: