其实早就想要学习使用版本管理软件,但一直没有开始。因为 SVN 比较庞大不容易快速上手,至今也只会照着命令 checkout 别人的源码。也对什么 tag, trunk 之类的搞不清楚。

这两天在学习 Symfony 为学院制作网站。又想起来要用版本管理软件了。这次学习了 Git,真的是很容易上手,最多一个小时时间的学习就可以开始用了。以下是一点笔记。要注意的是 git 在 ubuntu 下是用 apt-get install git-core 命令安装而不是 apt-get install git,那是另一个软件。

开始一个项目:git init。会在当前目录下创建 .git 文件夹,此后你在此目录及其下的子目录中就可以使用 git 的其他命令了。

设置用户名和电子邮件,将在日志中显示:
git config –global user.name “Yu WANG”
git config –global user.email “btyuest@gmail.com”
–global 选项把设置储存在 ~/.gitconfig 文件,对多个项目有效。没有这个选项的话会把他储存在 .git/config 文件内,对当前项目有效。这个文件设置的优先级高于 ~/.gitconfig 文件。git clone 命令不会复制此文件。

最常用的 add 和 commit 命令:新创建或更改过的文件要用 git add 添加到 git,否则不会被提交。可以用 git add . 添加全部新增改的文件。git commit 提交更改,会启用默认的编辑器(或者你用 git config core.editor 命令指定的编辑器),要求你输入一段消息(强制的)。也可以用 git commit -m “message” 的方式提交。git commit -a 会提交所有更新过的文件,但默认不会提交新文件。

git log 查看各次版本提交。git status 查看本次未提交的修改。

git clone another_directory 可以在 another_directory 目录下创建一个副本,也包括一个 .git 文件夹。这是多人开发的事,本文不讨论。

git branch newbranch 命令创建一个名为 newbranch 的分支,再用 git checkout newbranch 转到这个分支下工作。两步可合为一步:git checkout -b newbranch。
分支开发完毕可以转到主分支用 git merge branch 合并分支。

git 似乎没有 svn 那样 checkout 特定版本的命令,知道的大侠告诉我一声。要返回之前的状态,用 git reset 命令。
可以新建一个分支,然后在此分支下 git reset –hard 之前的版本。而 git reset –mixed 只是改变 repo 里面的状态,并不实际作用于源码。看起来就像是没有提交过更改。没有提交更改的文件 checkout 不同分支后仍然保留,提交后 checkout 出的文件就是各分支中不同的文件了。建议你多试一下这些命令,自己找感觉。

以上就是我目前所知,有不足之处或建议请留言。

参考:
我是看的一篇名为《Git 使用入门》的 pdf,Google 可以找到。
IBM 的这边文章也可参考 http://www.ibm.com/developerworks/cn/linux/l-git/index.html

官方网站:http://git.or.cz/

(2008-08-01 注:Pro Git 最近也在网上免费公布了,还有一个社区手册,Git 教程多得很,可以自己 Google 一下看)

Trackback

no comment untill now

Add your comment now