Git是一个强调速度的分布式版本控制软件和源代码管理系统(SCM,source code management)。Git最初是由Linus Torvalds为内核开发而设计的管理软件。自从Git推出以来,已经被不少开源项目所采纳。每个Git工做目录是一个带有彻底历史记录和版本信息的仓库,不依赖于网络和中央服务器。Git是一个免费的开源软件,听从GNU v2协议。html
Git这个词在英语中的原意是很笨拙,没用的人。Linus自嘲说:“我是一个任性的笨蛋,因此我把个人全部的项目的名字都和我很类似。第一个是Linux,如今是Git。”Git的帮助文档中描述Git为:笨拙的内容跟踪者(the stupid content tracker)。(翻译自WIKI)git
关于开发Git的一些历史由来,能够看看这个网站:https://lkml.org/lkml/2005/4/6/121github
2.为何要用GITubuntu
在 Mac 上安装 Git 有多种方式。 最简单的方法是安装 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系统中,在 Terminal 里尝试首次运行 git 命令便可。 若是没有安装过命令行开发者工具,将会提示你安装。vim
若是你想安装更新的版本,可使用二进制安装程序。 官方维护的 OSX Git 安装程序能够在 Git 官方网站下载,网址为 http://git-scm.com/download/mac。windows
yum install git-core (fedora)安全
apt-get install git-core (ubuntu)bash
尽管Git是发源于Linux,但如今Windows上也有可以正常使用Git,只不过不支持中文,在Windows下全部的中文都显示问号,另外还有一些功能上的BUG。因此建议仍是在Linux上去使用Git,若是你不得不工做在Windows上,你能够到http://msysgit.github.com/上下载msysgit的最新版,安装过程和其余Windows程序差很少,基本上点下一步就OK了。Msysgit默认会安装git bash和git GUI这两个程序,通常用git bash就能够了,它支持经常使用的命令。若是对Linux命令行不熟,你也能够用用git GUI,但功能有限制。服务器
b) 第一次使用GIT网络
在你安装好Git以后,你须要修改一些配置,才能正常使用Git。
Git经过“git config”命令来配置Git,这个命令有2个选项:--system, --global, 加上默认选项,分别对应Git上3级配置文件。第一个是/etc/gitconfig文件,和--system对应,这是全局配置文件,修改这个文件,将会影响系统上全部的用户,全部的仓库。第二个是你家目录下的/.gitconfig文件,与--global对应,修改它会对你当前用户的全部仓库产生影响。第三个是你仓库中的.git/.gitconfig文件,这是“git config”默认修改的配置文件,它只会对你当前仓库产生影响。
在第一次使用Git时,你须要告诉你的协同开发者,你是谁以及你的邮箱,在你提交的时候,Git须要这两个信息。具体经过如下命令设置:
git config --global user.name “Test OSS”
git config --global user.email [email protected]
固然你也能够不用--global选项,但这意味这你在每个仓库中都要这样设置。
同时,你也能够指定你的编辑器,你的Diff工具:
git config --global core.editor vim
git config --global merge.tool vimdiff
你还能够经过”git config --list”命令来查看你的设置。
当你把Git设置好以后,若是你要和从Git服务器上得到仓库,或者向Git服务器提交你的代码(好比github),你可能须要生成你本身的ssh密钥对。Git支持4种与服务器端通讯的协议:git、http、ssh和https。其中git只是一个只读协议,也就是说你只能够从服务器端获取仓库,可是你不能提交你本身的代码。而http和https用的不多,大部分都只支持ssh协议和Git协议。
当你经过ssh协议与远端服务器进行通讯的时候,你能够经过如下命令生成ssh密钥对:
ssh-keygen -t rsa
若是你没有指定密钥名称和存放路径的话,它默认把两个不对称密钥放在你的家目录下的.ssh目录下,密钥文件默认名称为id_rsa和id_rsa.pub,前者是私钥,后者是公钥。中间可能会要你设定访问密钥密码,这个能够设,能够不设,但为了安全考虑,仍是建议你设一个访问密码。不然,意味着任何持有你密钥的人均可以使用该密钥。
而后把你的公钥发给Git仓库管理员,而后你就能够经过ssh协议来访问服务器端,期间程序会自动进行密钥对匹配,若是你设了访问密码,你可能须要输入密码。
更多关于ssh的内容,请访问这里:http://www.freebsd.org/doc/zh_CN/books/handbook/openssh.html
这些设定完以后,你能够经过得到任何一个公开的代码仓库来检测你的git是否工做正常。好比下面这个:
git clone git://git2.kernel.org/pub/scm/git/git.git
四、GIT仓库
Git作为一个资源管理和跟踪系统,若是想要把本身的文件托管在Git上,那么首先你得让Git知道你须要管理的文件在哪。好比说如今我有一个项目,它在test文件夹里,我想让Git管理这个项目,这个时候你需进入到这个目录,而后运行“git init”命令。这个时候Git就会在该目录下生成一个.git的隐藏目录,Git用来进行版本控制和内容跟踪的全部文件都在该文件夹下。
处于git跟踪下的文件只具备三种状态:
因此,通常的git工做流程多是这样:修改过某些文件,而后把这些文件添加都暂缓区,再提交到仓库中造成一个版本或快照,最后提交到git服务器上。而在中间,可能伴随着分支管理,分支切换,撤消与合并。
可能有些人会以为很奇怪,为何git会有暂存区域这个概念,直接提交到仓库中不就ok了。其实这是git为了作版本控制用的,试想若是没有暂存区域,每修改一个文件,就会造成一个版本,太过频繁,不易于管理。暂存区域其实就是下一个版本的文件清单,你能够自由控制该往仓库中提交什么文件,这也能够避免在一个版本中包含一些中间文件,好比编译后的文件。
更多git 进阶( http://www.125135.com/1057214.htm )
命令行比较高冷,仍是来一个图形界面
SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操做。同时它也是Mercurial和Subversion版本控制系统工具。支持建立、提交、clone、push、pull 和merge等操做。
(如下以SourceTree For Mac V2.0.5.2中文版为例,托管平台以Github为例)
基本安装
1.1. 不建议在appstore直接搜索下载SourceTree,由于appstore里的版本已经十分老旧(好像是2012年更新的)。建议前往官网下载安装最新版,我这里也提供一个SourceTree for Mac V2.0.5.2的百度云的方便连接。 传送门→SourceTreeDownload
1.2. 拖动安装,Launchpad中打开,continue,输入github帐号按下一步完成便可。没有Github帐号的朋友,也能够跳过本步骤完成安装
注册GitHub(已有Github帐号的朋友请跳过本步骤)
2.1. 打开Github官网 传送门→Github
2.2. 填写必要的信息,点击sigh up for github
实践入门-建立仓库 clone&pull
3.1. 建立仓库
用咱们刚才建立的帐号登录github,在欢迎页点击“+ New repository“建立咱们的仓库
实践入门-参与开源 Fork&pull request
(如下以 [https://github.com/octocat/Spoon-Knife] 举例)
4.1. 首先打开上述页面,而后点击右上角“fork”按钮。fork意味着将他人的仓库复制到咱们帐号中。若是咱们想要参与开源项目,首先要fork下别人的项目,而后在咱们复制过来的仓库中,对别人的代码作修改。
上文均为我的拙见,欢迎你们讨论交流