本文主要目的是想让和我一样刚从SVN阵营转到Git阵营的程序员能够快速完成一些简单的Git操作。
简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git。在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作的实际意义。
Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。
Git 在管理项目时,在本地会有三个工作区域:Git 的本地数据目录,工作目录以及暂存区域。如下图所示:
因此对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。
在简单地了解了Git之后,那么接下来的事情就是安装Git客户端了,命令如下:
sudo apt-get install git
但是,安装了Git客户端之后,如果你的代码不是托管在GitHub上就可以跳过设置GitHub账户内容了,否则还需要配置一下GitHub账户,GitHub为托管的Git版本库提供SSH协议支持,即用户可以用公钥认证的方式连接到GitHub的SSH服务器。设置之后才能够使用Git命令来下载和推送代码。
首先需要到https://github.com/ 注册一个账户:只要点击导航条中的“Signup and Pricing”,或者点击首页中那个大大的“Plans, Pricing and Signup”按钮,即进入收费方案介绍及注册页面。开源软件托管是GitHub的基石,对于开源项目的版本库(即非私有版本库)的托管,GitHub是免费的。在收费方案及注册页面中,最上面的就是针对于开源的免费托管方案,如下图所示。
点击上图右侧的“Create a free account”按钮,就进入到注册页面,如下图所示。
注册只需要用户名,邮件地址和密码需要输入。注意:每个邮件地址只能注册一次。注册完成之后就会以新注册的账号自动登录。如下图所示:
点击上图右上角的设置按钮,就能进入设置页面,我们主要关注的是“ setting up Git and SSH keys”,设置成功之后用户可以用公钥认证的方式连接到GitHub的SSH服务器。
1. GIT相比CVS/SVN,Git 的优势:
- 支持离线开发,离线Repository
- 强大的分支功能,适合多个独立开发者协作
- 速度块
中文版Git使用指南 点击这里。
2. GitHub
GitHub是一个托管Git (开源或闭源)项目的网站,闭源收费,最低7$/月起,免费的300G空间。价格表如下:

使用GitHub步骤:
1、申请GitHub帐户 xxx ,创建名为new-project的新Repository
2、安装Git客户端(Linux)
#yum install git git-gui
3、 生成密钥对,这样项目可以push到 GitHub上
#ssh-keygen -t rsa -C "xxx@gmail.com"
4、将.ssh/id_rsa.pub拷贝到GitHub网站

5、为了方便,设置ssh不输入口令
# eval `ssh-agent`
# ssh-add
(输入passphrase)
6、测试是否能联通GitHub
#ssh git@github.com
如果配置正确,显示
ERROR: Hi xxx! You've successfully authenticated, but GitHub does not provide shell access
Connection to github.com closed.
7、设置Git全局用户配置
# git config --global user.name "xxx"
# git config --global user.email xxx@gmail.com
8、创建本地新项目工作树
# mkdir new-project
# cd new-project
# git init
# touch README
# git add README
# git commit -m 'first commit'
定义远程服务器别名origin
# git remote add origin git@github.com:xxx/new-project.git
本地和远程合并,本地默认分支为master
# git push origin master
GitHub网站上就可以看见了, http://github.com/xxx/new-project
9. 更新文件
# vi README
自动commit更改文件
# git commit -a
更新至远程
# git push origin master
10. 创建和合并分支
#git branch 显示当前分支是master
#git branch new-feature 创建分支
# git checkout new-feature 切换到新分支
# vi page_cache.inc.php
# git add page_cache.inc.php
Commit 到本地GIT
# git commit -a -m "added initial version of page cache"
合并到远程服务器
# git push origin new-feature
如果new-feature分支成熟了,觉得有必要合并进master
#git checkout master
#git merge new-feature
#git branch
#git push
则master中也合并了new-feature 的代码
再登录到GitHub可以看见"Switch Branches"下的分支选项:
