您的位置:首页 > 编程语言

git教程-使用github进行版本管理

2015-06-09 15:23 561 查看
使用github来进行版本管理。

首先如果你要完整地学习git使用,请参见廖雪峰的博客:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

以及对应的git专业书籍。

这篇博文的目的是为了能让你尽可能快的学习如何使用github来参与开源项目,如何使用github来构造自己的一个专业见证(参见刘未鹏所写的《如何花两年时间来面试

一个人》 http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/)

CSDN的在线编辑功能实在是差的要死。

使用Git

关于Git的历史:我们只需要知道它是由linux的作者Linus所写的用于版本管理的一个工具,已经逐渐取代CVS和SVN成为通用的项目构件。更方便的是哪怕只是你的一个个人小项目,也可以用它来管理。

安装Git:

对于Linux用户:请使用
<span style="font-family:SimSun;font-size:12px;">sudo apt-get install git</span>
对于windows用户:
我们运用git for windows来进行安装:http://msysgit.github.io/
之后在git shell里就可以像Unix系统一样使用git的各种命令

对于OSx用户,请下载Xcode,在preference(cmd+,)里有command line工具。(推荐使用,因为OSx上各种各样的开发都需要用到)。
或者安装好homebrew(好吧,homebrew也是必备的),用
brew install git
来安装。

Github的使用:

这里默认使用github作为我们的git服务器。

首先就是说所有的这些功能都可以用github的GUI客户端非常轻松的实现。但我们总要了解更多,用以在更复杂的情况下进行工作。

首先无论大家的操作系统是什么样的(这里非常好的一点就是linux,OSx,windows下都支持我们常用的命令,不存在cmd和zsh冲突的问题),我们都假设大家都已经安装好了git。
输入git就会出现git的所有命令,如果显示的是”command not found”,请重新检查配置。
1. 那么我们要进行git的确认工作。输入:
git config --global user.name “Allianzcortex”
git config --global user.mail “iamwanghz@gmail.com
这样的话如果有一个分布式服务器,它就可以在你提交时确定你的身份。
那么在github上是如何使用的呢?首先如果是GUI客户端,那么在登陆后就已经将你添加到了确认身份中。可以在setting中的SSH keys看到。比如我的就有:
GitHub for Windows - USER-20140926OF
e2:f1:0d:a6:02:55:e8:a4:3f:5d:bb:41:12:5d:e4:24
Added on 23 Feb 2015 by GitHub for Windows

如果要使用命令行(command line)的话,请运行命令:
ssh-keygen -t rsa -C”iamwanghz@gmail.com
成功后在我们的目录里就会有id_rsa和id_rsa.pub两个目录。前者是私钥,后者是公钥(我们用的是rsa的加密方法,密码学非常基本的一个理论就是好的密码不应该依赖于算法的保密,而是密钥的保密。所以我们要把id_rsa好好保管哦^^)。
接下来我们打开setting里的ssh,添加密钥,内容是rd_rsa.pub中的内容。
我的显示如下:
Github for MAc - command line
fa:b4:0c:da:12:6f:54:1c:da:0d:b7:11:05:77:7c:65
Added on 3 Jun 2015 — Last used within the last day

无论采用哪种方式,当系统确认你之后,每次就可以提交文件了。

2. 当我们发现一个人的github上有一个非常好的开源项目时,我们想要去使用它:
实现我们应该把它fork到我们的github上。点击fork按钮即可。
这时在你的github主页上就应该出现一个同名的仓库,不过所有人是你,你具有修改它的权限。

3. 接下来我们应该在我们的本地进行修改,以我的仓库为例:
git clone git@github.com:Allianzcortex/gittest.git
这时在你的本地就会下载新建好的一个仓库。并且在github和本地的库之间存在连接。
用master标识本地的仓库,origin标识远程(github)上的仓库。

4. 接下来就是你要添加文件的时候了,但直接修改是一个非常不好的习惯,因为我们要保证发布版本的稳定性:
用git checkout -b dev 来新建出一个版本,名称为dev。
这段命令等价于:git branch dev ##新建一个版本
git checkout dev ##跳转到这个版本中,git checkout master
##则跳转到主版本中
好了,那么我们就要在dev版本中进行修改。

5. 我们要明白在git本地的仓库中存在两部分内容:
一部分是工作区(working directory),也就是我们写完代码后存在的部分;
另一部分是仓库区(repository),仓库区又包括两部分内容:
一是暂存区(stage)
二是master(对,和2中所提到的master并不一样),用head指针指向。

你会问为什么要这么复杂呢?这么多的部分主要是为了实现非常多有用的功能。比如:版本回退,版本前进等等。因为要保证代码的万无一失。但我们这里暂时不展开讲,只讨论最基本的部分:
比如说我们已经在目录里添加了一个文件f1。要把它同步到git里面去:
git add f1 ##将文件从工作区转到暂存区
git commit -m”add the f1” 将文件从暂存区加入到master所指向的区域
这样就完成文件的加入了。

6. 不要忘记我们所做的所有更改都是在dev里进行的,所以说最后我们还要将更改合并到master分支里去才能提交。
git merge dev

7. 最后我们要把我们在本地的更新同步到github上去。
git push origin master
所有的一切都完成了。刷新网页,是不是能看到更新的内容?

8. 那么上面基本上就是这个教程的主要内容,如果你只想要在本地进行工作,而不再github上显示,怎么办呢?
mkdir test ##生成一个test的目录
git init test ##进行初始化
这样这个目录就可以用git来进行管理了。

git在你每次commit时都会生成一个特有的二进制标示符,用以区分提交顺序,方便返回某个版本等(比起当时用的 最终版、最终完成版、最最终完成版、再也不修改版 不知道要高到哪儿去了)。如果你愿意了解更具体的原理的话,查看命令:
git log
git status

那么我们在本地建立一个目录后,如何和远程的建立连接呢,使用如下语句:
git remote add origin git@github.com:Allianzcortex/gittest.git

这些命令基本上能够满足大多数时候大家的需求了。希望这篇文章能加深自己的理解,也能对即将使用git的人有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: