Github全面学习笔记

Stella981
• 阅读 422

不如看看官方的指导手册: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) 来帮助开源项目是一个很好的方式。
当我们下载了开源项目的代码,引入到我的项目中,但是我们会发现这个代码中存在问题,并不能满足我的所有要求,可能是在我需要用到的一个函数里面有一个错误,但是我不知道如何修复这个错误,
这个时候可以通过 githubIssues 形式来构建一个非常好的问题报告来帮助项目的维护者和其他的贡献者来完善这个 bug ,从而来完善整个开源项目。

演示:在我自己的代码仓库中的创建问题报告。

首先要检查当前的问题列表中是否存在我要提交的问题,可以使用问题搜索框进行问题关键字搜索。
注意:不要碰见一个问题就提交,这样对开源项目并没有好处。所以我们最好确保要为我们的开源项目创建一个真正有用的问题。
我们最好把开源项目克隆到我的本地计算机中进行运行,进而发现问题。再到 github网站 上去 New issue
====================================================
如何Fork开源项目?
实际上大多数的开源项目,都遵循着一个大致的工作流程。
一个开源项目大致会有三种人:
1.负责该项目,是该项目的所有者和维护者。(有pull和push权限)(修复bug)
2.贡献代码,提出问题报告,是该项目的贡献者。(有pull无push权限)(提出bug修改意见)
3.只是想使用该开源软件,是该项目的使用者。(无pull无psh权限)(发现bug)

作为项目的贡献者,没有push权限,我们想要进行更改,怎么办呢?
答:需要创建 ForkFork 可以获取当前代码仓库状态的一个副本。我们可以通过 Fork 将该项目移动到我们自己的账户或者所在的组织中。
对于该副本我们拥有所有权限,可以进行 pullpush 了。当我进行修改完成后,提交给项目的作者,在这两个代码仓库之间使用 Pull requests
如果作者认为我改的还可以,就会将这个 Pull requests 进行合并。
====================================================
如何在Fork到的开源项目中提交Pull requests?
我们将 Fork 到的开源项目克隆到我们本地计算机中进行修改,把更改通过 Pull requests 到原始的项目中。

此时开源项目的维护者就会看到这个 Pull requests 了,如果维护者觉得不错,就会 **合并拉取的请求(Merge pull request)**。
但是并不是所有的 Pull requests 都会被合并,这并不意味着你的修改是有问题的,有时候项目的维护者他就是不鸟你!你也没办法!
====================================================

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法
Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法参考文章:(1)Google地球出现“无法连接到登录服务器(错误代码:c00a0194)”解决方法(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.codeprj.com%2Fblo
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这