菜鸟学习版本管理系统 Git 和 代码托管平台 GitHub

菜鸟学习版本管理系统 Git 和 代码托管平台 GitHub
Git 无疑是现今最最流行的版本管理工具。GitHub 是一个风靡全世界的开源社区。我从去年自己搭建 svn 服务器(subversion)以来,对 Git 就抱有很浓厚的兴趣,但是因为没有项目驱动,学习 Git 一直入不了门,仅仅只是知道一个 HelloWorld 而已。不过现在好了,经过近 2 个星期的艰苦努力,总算明白 Git 究竟是什么了,也有了自己对 Git 的一点点微不足道的理解。在这里,做一个资料的汇总,以及我在学习 Git 过程中的一点感悟,希望对其他想学习 Git 的小伙伴们能有一些帮助。

在思想上,学习 Git 之前一定要抛弃原先对 svn 的理解和使用依赖。比如在 Git 里 checkout 是切换分支的意思,但是在 svn 中 checkout 是把代码从版本库里检出。当然 Git 和 svn 的差别远不止这一点。Git 是分布式的版本管理系统,svn 是集中式地版本管理系统(具体阐释可以在下面公布的资料中找到)。

走进 Git,你会发现它魅力无穷,学会 Git ,你会收货极大满足。

首先,先展示对我帮助很大的几份资料。

1、手把手教你使用 Git
http://oss.org.cn/html/71/n-86471.html
说明:这份资料比较全面,而且配图也很详细。刚开始不理解,没有关系,一定要多敲几遍。
重点:安装 git 的环境有很多种,在 Windows 上就安装一个叫 msysgit 就可以了,它集成了 Cygwin (模拟 Linux 环境的工具)和 git。
有了安装环境,就可以好好滴联系 Git 的常用操作了。
理解上的难点:(1)git add:把工作区的文件添加到暂存区;
(2)git commit :把暂存区的文件提交到版本库的当前分支。

2、廖雪峰的跟我学 Git 系列
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
说明:这个系列图文并茂,很适合初学者,讲解的内容也非常实用。内容和上面的资料1多有重合,算是对相同重要的内容的强调和互补吧。
考虑到很多跟我一样的小伙伴们对 Windows 还是情有独钟,所以把这边文章放在第2,其实这边文章应该放在第1位的。
说明:这个网站里面还有一个 Python3 教程,希望有惊喜。

3、易百 Git 教程
http://www.yiibai.com/git/
说明:这篇系列教程可以作为一个速查工具。

4、转为设计师而写的 GitHub 教程
http://www.admin10000.com/document/4760.html
说明:这篇资料里面有一些很新鲜的观点,用 git 合同协作写书等等。

5、深入理解 Git 的 5 个远程操作命令(阮一峰的博客)
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
说明:这篇文章对远程的一些操作讲解非常细致和深入。建议对这些命令有一些基础但是不深入的朋友们看,可以加深理解和记忆。这篇文章讲解得很细致。

重要备忘:
git clone 克隆版本库的时候,所使用的远程主机自动被 Git命名为 origin 。如果想用其他的主机名,需要用 git clone 命令的 -o 选项指定。例如:

$ git clone -o jQuery https://github.com/jquery/jquery.git
$ git remote
jQuery

6、Git分支管理策略(阮一峰的博客)
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
说明:对于 Git 的分支讲解很深入,也给出了最佳实践。一定要多看看。

重点理解:
git remote 的用法:
为了便于管理,Git 要求每个远程主机都必须指定一个主机名。git remote 命令就用于管理主机名。
git remote 用于查看当前的远程主机,如果加上 -v 选项可以查看远程主机的 URL。
git clone URL:会把 URL 链接指向的版本库下载到本地(自动帮你创建一个与项目名同名的文件夹,文件夹下面有一个 .git 文件夹作为版本库)。同时还帮我建立了本地版本库和远程版本库的连接,还默认地把远程版本库的名字命名为 origin,如果你不想叫 origin ,可以指定 -o 选项。

一个重要而且常用的命令:
git remote add命令用于添加远程主机。
命令格式:git remote add <主机名> <网址>

下面的这段话也是非常重要的:
git fetch 操作,只是把远程的分支取回来,放在了 .git 文件夹下地某个地方,但是并没有放在工作区里和我们的文件进行比对和合并。
所取回的更新,在本地主机上要用“远程主机名/分支名”的形式读取。比如origin主机的master,就要用origin/master读取。
git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支。如果只是单单使用 git branch 只能查看本地分支。

针对 别人的 GitHub 开源项目而言:
你可以 fork 别人的项目到自己的“仓库”里面来,自己修改,然后给对方发送一个(pull request)请求,当然别人能不能接受,是另一回事了,哈哈。

你可能感兴趣的:(git-github)