GitHub 使用

git / GitHub / gitlab
简介
Git - 版本控制工具
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。 开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。 尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 最近就迁移到 Git 上来了,很多 Freedesktop 的项目也迁移到了 Git 上。
Github - 一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等 作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户。 随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。 如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。 GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。 为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
GitLab - 基于Git的项目管理软件 GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 三者都是基于git的,可以说是git的衍生品。
什么是GitHub?

GitHub是一个版本控制和协作的代码管理平台。它可以让你和他人在任何地点一起进行项目工作。

步骤 1. 创建一个储存库
一个储存库通常被用来组织一个单独的项目。存储库可以包含文件夹和文件,图片,视频,电子表格,和数据集合——你的项目的任何东西。我们建议包含一个README(说明档案),或者包含关于你项目信息的文件。同时GitHub使得你创建你的新储存库变得容易。它也提供其它普通的选项例如一个授权文件。

去创建一个新的储存库

1.在右上角,临近你的名字,点击 + 号并且然后点击New Repository.
2.把你的仓库命名为hello world.
3.撰写一个简短的介绍。
4.挑选Intialize this repository with a README(用一个说明档案初始化这个存储库)----此处若不选中,则不初始化,创建完成后,页面上出现提示说明,有具体做法。

GitHub 使用_第1张图片
01.png

这里建的就是origin的远端仓库,下面说一下,把本地代码上传到origin:
方式一:

1.仓库克隆到本地:git clone +远端地址; (进到准备存储代码的目录中,再克隆)
2.创建ignore文件: touch .gitignore
3.提交.gitignore文件到远端
4.用sourcetree查看提交等日志
5.把代码放到本地仓库中,添加git add + 点;提交到本地:git commit (后面加-m “提交的日志”)
6.把本地代码推送到远端:git push origin master
7.如果:代码工程放到本地后,发现有问题,git发现不了这个工程,可能是:工程本身里面有个.git的跟踪,删除即可。

方式二:

1. 一般此时,本地已经创建了一个项目,而且xcode创建项目的时候自带了隐藏文件夹.git, 此时本地项目和gitHub上面并没有任何的联系。
2. 创建ignore文件,放入本地项目中。
3. cd命令进入到本地项目中,然后 git add . 。
4. 命令:git commit -m"提交项目工程"  ,这是提交到本地。
5. 命令:git remote add origin http://*****/iOS_group/***.git。
6. 命令: push -u origin master,或者push origin master。
(如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push, push -u origin master是:本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push)
此时,github里面的project里面就有了项目代码。

其实,在gitlab中创建项目后,里面未初始情况下,会提示各种情况的操作:


GitHub 使用_第2张图片
111.png

操作过程中,可能出现错误:fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决:

出现这个问题是很可能是因为没有在github账号添加SSH key,或者是没有把专用密钥添加到 ssh-agent 的高速缓存中;
具体参考:我的另一篇文章 “iOS ssh keys 和 mac下使用github 上传代码”中的“ ssh -T [email protected]”检测过程的步骤,则可以解决。

步骤 2.创建一个分支
分支是在同一时间内能工作在一个储存库中的不同版本上的方法。
你的储存库中有一个名字为master的分支,此分支默认为决定性的分支。在提给master之前,我们使用分支来试验和编辑。

当你创建一个分支与master分支分开时,你正在进行拷贝或者说是复制master在那个时间点。当你正工作在你的分支时,别人对master分支进行改动,你可以提取这些更新。

在GitHub的储存库中,分支完成相似的任务。

在GitHub,我们的发明者,作者和设计师都在用分支来进行bug修复和重要的工作,这些分支从我们的master分支中分离出来。当一项改动准备好时,他们把分支合并到master中。

来创建一个新的分支

1.来到你的新的hello world储存库。
2.点击顶端文件(master)的下拉菜单
3.敲写分支的名字,readme-edits,进入新的分支文件盒子。
4.选择蓝色的Create branch盒子 或者在你的键盘上点击“Enter”。

现在你拥有了两条分支,master和readme-edits.它们看起来完全一样。

步骤3.作出改动并且提交
你的readme-edit分支(master的副本)。让我们来做些编辑工作吧。
在GitHub,保存改动被称为提交。每项提交都有一个相关联的信息。这个信息是一个说明,用来阐述为什么要进行特殊的改动。提交信息捕获你的改动历史,以便其他的合作者可以明白你改动的东西和目的。

作出改动并且提交

点击README.md文件。
在文件视野的右上角点击铅笔图标进行编辑。
在编辑器中,写一点关于你自己的东西。
点击Commit changes 按钮。

这些改动将仅仅会在你的readme-edits分支中的文件中出现,因此现在这个分支中的内容不同于master。

步骤 4.开启一个提取请求
现在你在master的分离的分支上作出改动了,你可以开启一个提取请求。

在HitHub中提取请求是合作的核心。当你开启一个提取请求,表明你正在提议你的更改并且请求某人审查并提取你的贡献内容,同时把你的贡献内容合并到他们的分支上。这些改动,添加和删除会被用绿色和红色显示。

一旦你做出提交,你就可以开启一个提取请求和开始一场讨论,甚至可以在代码完成之前。

通过使用在你的提取请求GitHub的[@mention system](http://help.github.com/articles/about-writing-and-formatting-on-github/#text-formatting-toolbar 通知栏,你可以要求某个具体的人或者团队的反馈,无论他们是在大厅还是相隔10个时区的地方。

你甚至可以在你的个人储存库开启提取请求,并且亲自把它们合并。在学习更大的项目之前,下面是一种很棒的学习GitHub的方法。

为了修改README文件而开启一个提取请求

当你完成你的信息表时,点击Create pull request!

步骤 5.合并你的提交请求
1.在最后一步,是时候把你的改动整合起来——把你的readme edits分支合并到master分支中。
2.点击Confirm merge。
3.继续, 因为改动已经被合并了,所以可以用在紫色框中的Delete branch按钮删除分支。

在GitHub 的页面上,先定义两个角色:原著A用户的工程a,和想要针对a做些操作的B用户。

GitHub 使用_第3张图片
02.png

例如,针对这个afnet, 想要做些操作,进到此处,点击里面的某个文件--”README“, 然后进行编辑--修改,这个过程是创建了一个fork(针对外来人员可编辑的一个分支)。

GitHub 使用_第4张图片
03.png

编辑过后,下面的显示,填写编写日志,点击后:


GitHub 使用_第5张图片
04.png

此处的base fork 是原著A的,head fork是B的已复制的一个可编写的分支,点击:create pull request,就是提出让A拉取B修改内容的请求,若A拉取合并则,A中的a项目就合并了B的修改。
注意:AFNetworking/AFNetworking 和 wgj0808/AFNetworking, AFNetworking/AFNetworking指的是原著,而 wgj0808/AFNetworking指的是fork的分支,是属于wgj0808的一份可编辑并可保存修改内容的一个复制品。不管怎样,想要A在a项目中看到Pull requests 的申请,B必须要在自己账号中提出pull的请求。

code: 代码,修改,编辑,切换分之;
Issues: 错误,在原著中的a里面可以编辑提交,让A看到。
Pull reaquests: 拉取请求,外来人员的一些修改代码,请求合并的申请。

你可能感兴趣的:(GitHub 使用)