不如看看官方的指导手册:https://guides.github.com/
可以翻译成中文查看哦!
====================================================
如何创建分支branch?
分支可以方便同时处理多个版本的代码,它是在创建分支的那个时间点上的原始分支的精确副本。
即可以随意的体验或者是更改、提交新的分支,直到准备好了就可以安全的和原始分支进行合并。
====================================================
如何创建Pull Request?
Pull Request 用于提出对项目文件的更改,它是一个开始提交讨论的方式,它被经常用于代码审查中。
如果是一个人工作的话,那么 Pull Request 可能没有太大的帮助,因为可以用学到的 git命令 来更改、推送到我们的主分支中,而不存在其他的分支。
但是如果在公司项目或者是开源项目这种团队工作的情况下,会有很多分支。
github 会知道你已经添加了更改到新的分支中,所以它会智能的建议你启动 Compare & pull request(比较和拉取请求)
====================================================
如何解决文件冲突?
假设在合并 Pull Request 到我们的主分支之前,想对要合并的新分支添加修改,该如何做呢?
答:只需到回到 windows 中对新分支中的文件进行修改再保存即可,之后打开 cmd控制台 进行 git命令 操作即可。
演示在 github网站上 提交更改以及在本地计算机副本上提交更改来故意创建一个文件冲突。
当我们刚开始使用 git 和 github 时,建议:不要在 github网站上 对文件做任何修改,而是在本地计算机副本上执行想要的修改和其他工作,
这样做有助于我们有效地避免文件冲突。实际上,我们只是在本地计算机副本上进行更改且这个项目就是我一个人维护的话,那么我本地代码将永远和 github上 面的代码同步。
但是呢,如果是在一个团队中和他人协作时,他人会在我工作的时候,向远程分支 push 的一个更改,而这个更改和我们正在本地计算机做的更改是同一个文件,那么就会导致文件冲突。
这是一个相当普遍的问题。所以需要我们练习创建和修复冲突。
====================================================
如何创建组织?
有时在团队协作中,当需要用到多个代码仓库时,就需要一个 github 的组织了。
github 组织允许你管理和组织所有的代码仓库。一个 github 账户可以在不同的组织中工作。
输入组织名和邮箱即可,暂时不选付费项目。其余的不用管,默认下一步就行。
====================================================
如何创建小组?
比如:在谷歌工作,有开发小组、营销小组、运营小组,
在我所在的开发小组里面有三个人,我们需要访问相同的代码仓库,并且经常需要互相交流。
这个时候我们就需要单独的github小组,这样将有助于改善我们的工作流程。
通常来说,在github中一个组织可以分为多个小组。小组允许我和组内的成员共享设置权限,不同的组有不同的权限分配。
例如:开发小组有访问开发的权限,比如我有访问要开发软件的代码仓库的权限。
====================================================
如何在组织中创建代码仓库,并如何授予该组织中某个小组权限?
比如:在 google 这样的组织中,代码仓库应该属于组织所有的。
现在在组织中创建代码仓库,并且让开发小组能够访问到该组织新创建的代码仓库。
给上次在该组织中创建的开发小组开放访问权限。
====================================================
如何在组织中的代码仓库里,为组织中的小组创建Pull Request(拉取请求/下载请求)?
当你在一个更大的组织中工作时,良好的创建 Pull Request(拉取请求/下载请求) 的习惯是很重要的。
许多组织使用 Pull Request 进行代码审查,当你对代码进行更改后,你可以邀请你的小组审核你所做的更改,并提供反馈。
什么是好的 Pull Request 呢?
当我们自己一个人工作时,Pull Request 只是帮助我们自己记住为什么修改,所以随意提交一个 Pull Request 都没关系。
但是当我们作为更大团队的一部分,重要的是我们要清楚正在改变的是什么以及为什么要做出这样的改变。
所以我们要填写下修改的标题和具体说明。
使用组织的好处是:能够使用团队通知功能。
现在使用一种简单的方法来确保该组织小组中的所有成员都能看到这个 Pull Request 。
@heizeTeam/developersteam
====================================================
什么是开源软件?
开源软件是所有人都可以修改和补充的软件,因为开源软件的 licences 协议允许这样做。
Git 版本控制系统就是开源的软件。
实际上开源软件的一个重要组成部分就是添加 licences 文本文件,licences 告诉我们如何使用我们编写的代码。
====================================================
如何添加licences文件?
====================================================
如何找到一个优秀的且可以贡献的开源项目?
法一:在 github网站 的主面板找到 Explore 选项卡 --> See more topics(查看更多主题) 或者 See more trending repositories(产看更多趋势库)。
法二:https://libraries.io/ 寻找开源的包、框架和工具...
注意:在我们使用开源项目之前,首先确定该开源项目的代码是公开的,可以查看它的 license 文件来了解这个开源项目允许使用的程度,其次是查看自述文件(READNE.md),了解该开源项目的状态。
====================================================
如何为开源项目提bug?
大家都知道,在解决一个问题之前,必须先了解这个问题,所以创建一个 问题(Issues) 来帮助开源项目是一个很好的方式。
当我们下载了开源项目的代码,引入到我的项目中,但是我们会发现这个代码中存在问题,并不能满足我的所有要求,可能是在我需要用到的一个函数里面有一个错误,但是我不知道如何修复这个错误,
这个时候可以通过 github 的 Issues 形式来构建一个非常好的问题报告来帮助项目的维护者和其他的贡献者来完善这个 bug ,从而来完善整个开源项目。
演示:在我自己的代码仓库中的创建问题报告。
首先要检查当前的问题列表中是否存在我要提交的问题,可以使用问题搜索框进行问题关键字搜索。
注意:不要碰见一个问题就提交,这样对开源项目并没有好处。所以我们最好确保要为我们的开源项目创建一个真正有用的问题。
我们最好把开源项目克隆到我的本地计算机中进行运行,进而发现问题。再到 github网站 上去 New issue。
====================================================
如何Fork开源项目?
实际上大多数的开源项目,都遵循着一个大致的工作流程。
一个开源项目大致会有三种人:
1.负责该项目,是该项目的所有者和维护者。(有pull和push权限)(修复bug)
2.贡献代码,提出问题报告,是该项目的贡献者。(有pull无push权限)(提出bug修改意见)
3.只是想使用该开源软件,是该项目的使用者。(无pull无psh权限)(发现bug)
作为项目的贡献者,没有push权限,我们想要进行更改,怎么办呢?
答:需要创建 Fork。Fork 可以获取当前代码仓库状态的一个副本。我们可以通过 Fork 将该项目移动到我们自己的账户或者所在的组织中。
对于该副本我们拥有所有权限,可以进行 pull 和 push 了。当我进行修改完成后,提交给项目的作者,在这两个代码仓库之间使用 Pull requests 。
如果作者认为我改的还可以,就会将这个 Pull requests 进行合并。
====================================================
如何在Fork到的开源项目中提交Pull requests?
我们将 Fork 到的开源项目克隆到我们本地计算机中进行修改,把更改通过 Pull requests 到原始的项目中。
此时开源项目的维护者就会看到这个 Pull requests 了,如果维护者觉得不错,就会 合并拉取的请求(Merge pull request)。
但是并不是所有的 Pull requests 都会被合并,这并不意味着你的修改是有问题的,有时候项目的维护者他就是不鸟你!你也没办法!
====================================================
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】