Git基本概述
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。
Git旨在快速高效地处理无论规模大小的任何软件工程项目。
每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。
优势:
Git 最大的优势就是“快”!对于大型的联合开发项目,用SVN 进行版本控制管理时速度很慢,但是用 Git 就快很多。
Git还有最大的一个优势就是支持分布式开发。
基本上SVN有的功能Git都有,并且毫不逊色。
为什么要用GIT
- 更顺畅的工作流程,开发过程中,完全可以离线操作
- 快速,Git分布式架构使得本地仓库包含所有的历史版本信息,你可以在不同的版本之间快速切换
- 弹性的本地分支,在svn下,你建一个分支需要把源代码复制到另外一个文件夹,而在Git下,创建分支的代价是非常小的,只需一条命令
- 仓库目录结构简洁,用Git复制一个项目,只会在项目根目录创建一个.git的目录,而其他目录很干净
- 内容按元数据方式存储,所有的版本信息都位于.git目录下
- 完整性好,更易于协作开发
- 用户群大,现在已经有成千上万个开源项目采用Git来做项目管理,github上更是有无数个代码仓库
尽管Git是发源于Linux,但现在Windows上也有能够正常使用Git,只不过不支持中文,在Windows下所有的中文都显示问号,另外还有一些功能上的BUG。所以建议还是在Linux上去使用Git。
Git 配合github个人帐号使用,自己注册即可。-----github私有库永久免费,提供手机客户端,国内唯一同时支持Git 和 SVN 的代码托管平台) GitHub可以托管各种git库,并提供一个web界面.
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按 钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pullrequest”机制向项目负责人申请代码合并。
一、下载安装git
目前最新版Git-2.8.1-64-bit.exe(不同操作系统用相应的版本)http://download.youkuaiyun.com/detail/ljheee/9531182
一般按默认路径安装就行,安装完毕会默认完成GitBash 和Git GUI这两个工具的安装。Git GUI提供使用界面方式操作。
第一次使用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 oss.lzu.edu.cn@gmail.com
当然你也可以不用--global选项,但这意味这你在每一个仓库中都要这样设置。
二、生成ssh密钥对
当你把Git设置好之后,如果你要和从Git服务器上获得仓库,或者向Git服务器提交你的代码(比如github),你可能需要生成你自己的ssh密钥对。Git支持4种与服务器端通信的协议:git、http、ssh和https。其中git只是一个只读协议,也就是说你只可以从服务器端获取仓库,但是你不能提交你自己的代码。而http和https用的很少,大部分都只支持ssh协议和Git协议。[ssh,即SecureShell]
当通过ssh协议与远端服务器进行通信的时候,可以通过以下命令生成ssh密钥对:
ssh-keygen -t rsa -t是参数,rsa即RSA加密算法,是一种非对称加密方式
如果没有指定密钥名称和存放路径的话,它默认把两个不对称密钥放在家目录[如果是Windows操作系统就是C:/user/Administrator/.ssh]下的.ssh目录下,密钥文件默认名称为id_rsa和id_rsa.pub,前者是私钥,后者是公钥。
中间还会要让设定访问密钥密码,这个密码在每次克隆仓库,和上传代码时,都会让输入,一般都会设一个自己知道且常用的。
然后把公钥发给Git仓库管理员,然后就可以通过ssh协议来访问服务器端,期间程序会自动进行密钥对匹配。
这些设定完之后,你可以通过获得任何一个公开的代码仓库来检测你的git是否工作正常。比如下面这个:
git clone git://git2.kernel.org/pub/scm/git/git.git
一般的git工作流程可能是这样:修改过某些文件,然后把这些文件添加都暂缓区,再提交到仓库中形成一个版本或快照,最后提交到git服务器上。而在中间,可能伴随着分支管理,分支切换,撤消与合并。
可能有些人会觉得很奇怪,为什么git会有暂存区域这个概念,直接提交到仓库中不就ok了。其实这是git为了做版本控制用的,试想如果没有暂存区域,每修改一个文件,就会形成一个版本,太过频繁,不易于管理。暂存区域其实就是下一个版本的文件清单,你可以自由控制该往仓库中提交什么文件,这也可以避免在一个版本中包含一些中间文件,比如编译后的文件。
二、Git和IDE结合使用
如Eclipse-----前提是IDE与支持git的插件
1、在自己的github中创建工程仓库,new repository
2、在自己合适的目录处,右击打开Git Bash,输入命令克隆下来仓库。
git clone ...[SSH地址]
3、打开Eclipse,新建工程时,修改路径----打开到克隆下来的工程目录。
3、在Eclipse中完成工程后,右击工程,Team--->Add to index,然后commit
4、需要注意的是每次commit都必须填写message。message也就是对本次提交的描述。
三、Git命令
Git命令通常是用---右击打开Git Bash,在各个黑框框控制台使用的
git init 初始化本地的当前文件夹为一个仓库。会自动生成一个.git名称的文件夹
git status 查看状态(会提示--修改文件,未提交文件)
git add fileName/* 跟踪提交文件
git log 提交历史记录
git checkout 提交点 回到过去一点
git checkout master 回到主目录
git branch 查看分支
git branch f1 创建一个分支f1
git checkout f1 切换到f1分支
git merge f1 合并f1
git tag 版本号[1.0.0]0ahb7[散列]
git clone /path/to/repository 克隆仓库到本地
git push 提交到仓库
右击就可打开Git Bash,且初始路径就是你打开的位置,如果需要改变路径,可以用一下命令完成(这些命令就是--UNIX/Linux操作的命令)
cd path 切换目录
cd . 当前
cd.. 返回上一级
cd ~回到根目录
pwd 打印工作目录(路径)
mkdir dirName 创建目录
rmdir dirName 删除空目录
rm -rf dirName 递归删除非空文件夹
touch a.txt 创建文件
rm a.txt 删除文件
clear 清除屏幕
ls 显示内容
ls -l 显示详细信息
ls -a all显示所有内容
如果对这些命令不熟悉,可以使用。Git GUI界面方式操作。
四、ssh密钥对—使用建议
生成的密钥对,自己保管好(建议把.ssh文件夹备份);
如果换了机器,重新安装git后,把.ssh文件夹复制到新电脑的C:/user/Administrator下即可正常使用。
或者生成一对新的密钥对,覆盖之前的。
git使用详细介绍.docx
下载地址 http://download.youkuaiyun.com/detail/ljheee/9530238
git 简明指南
http://www.bootcss.com/p/git-guide/
http://geek.youkuaiyun.com/news/detail/72807