转载一篇GitHub官网教程翻译(在原文基础上作适当修改)
原文地址: https://blog.csdn.net/kabulore/article/details/51801337
翻译来源: https://guides.github.com/activities/hello-world/
通过本文,您将会学到:
- 如何创建和使用仓库
- 如何创建和管理分支
- 如何改变一个文件并将它提交到github上
- 如何发起以及合并请求
GitHub是一个代码版本控制和协作的托管平台。它可以让你和你的伙伴在任何地方一起进行项目开发。
本教程将帮助你学习GitHub的必备知识,如“仓库”、“分支”、“提交代码”以及“请求代码合并”。你将创建你自己的“hello-world”仓库并且学习GitHub的请求代码合并工作流,这是目前一种非常流行的创建和审查代码方式。
一个仓库通常用来组织一个单独的项目。该仓库可以包含你项目中的所有文件,如文件夹、文件、图片、视频、电子表格、数据集等。我们建议包含一个README文件,或者你自定义的用来记录项目信息的文件。GitHub将默认在你创建仓库的时候添加它。在创建的同时还提供了权限许可选项。
你可以用你的“hello-world”仓库来存储你的想法、资源,甚至用它来和别人分享、讨论任何事情。
创建一个新的仓库
点击“Create repository”按钮,完成创建。
分支是一个可以让你在同一时间工作在同一个仓库的不同版本的方法。
在你的仓库中会有一个默认的名叫“master”的主分支,该分支用来存储你最终确定的版本代码。我们用其他的子分支来进行编辑和更改,确定之后再提交到主分支。
当你从主分支创建出一个子分支的那一刻,其实你就是对当时时间点的主分支做了一个拷贝。如果之后别的分支的人对主分支做出了更新,在你提交到主分支之前,你必须先从主分支上拉取那些更新。
下面的图表将显示分支合作的整个流程:
你是否像下面这样保存过不同版本的文件?
在GItHub仓库中的分支就是为了完成类似的功能。
在GitHub上,我们的开发人员,编辑人员以及设计人员,分别在独立的分支上完成自己修改bug或功能编写的工作。当一个功能编写确定之后,他们就将自己的分支合并到主分支上。
新建一个子分支
现在,你已经有了“master”和“readme-edits”两个分支了。他们看起来几乎一模一样,但是不要着急,接下来,我们将在我们新建的子分支上做出一些改变。
干得好!现在,你已经在你的新分支“readme-edits”上了,让我们来对它写点什么。
在GitHub中,保存更改被称为“提交”。每一次提交都需要写一段我们为什么做出修改的备注说明。这些备注说明将对你的更改做出记录,其他伙伴看到之后就知道你每次都提交了什么。
做出修改并提交
这些更改只是针对于位于你的“readme-edits”子分支中的 “README.md ”文件,所以现在这个分支上包含的内容和主分支上已经有所不同。
现在你已经对你的新分支做出了修改,我们可以发出“请求代码合并”的请求啦。
请求代码合并是GitHub团队协作的核心功能。当你发出一个“请求代码合并”请求的时候,相当于你请求别人拷贝你当前的代码做出审查,审查通过之后将你的代码下载并且合并到他们的分支上。该请求将会在所有的分支上显示出不相同的部分。你做出的任何更改、增加以及减少,都会用绿色和红色显示出来。
在你的代码完成之前,你可以随时进行代码提交,发起请求代码合并的请求以及进行一场讨论。
你可以通过GitHub的“@”功能,在每次发出“请求代码合并”请求的时候,向特定的人或团队做出反馈,无论这个人是在你身边还是远在千里之外。
你可以向自己的仓库发出“请求代码合并”的请求,并且自己去合并他们。这在你接触到大型项目之前是一个非常好的练习方法。
为更改的README文件发出“请求代码合并”请求
第一步:点击“Pull Request”选项卡按钮,切换到请求代码合并页面,点击绿色的“New pull request”按钮
第二步:选择你创建的“readme-edits”分支,与主分支进行比较。
第三步:在对比页面查看这些更改,确定他们就是你想要提交的。
第四步:当你确定这些更改就是你所要的时候,点击绿色的“Create Pull Request”按钮。
第五步:为你的更改做一个简单的标题和描述。
当你写完备注描述之后,点击“Create pull request”按钮。
提示:你可以使用emoji表情或者拖拽图片到评论窗口进行评论。
这是整个过程的最后一步,是时候将你在子分支“readme-edits”做出的更改合并到主分支“master”上了。
大功告成,你已经学会如何在github官网上管理自己的项目了。
补充:(以下为非转载内容)
Fork:以上内容主要讲如何在GitHub上管理、开发自己的项目,如果要帮助别人开发项目,就不得不说到fork。fork原意为分叉,是将别人仓库的内容复制一份到自己的GitHub上,包括原库的commits、branch、contributors等信息,这么做是因为在别人的GitHub上我们并没有修改的操作权限,所以我们在为别人的项目作出修改之前必须先将其fork到自己GitHub上,fork后的库相当于自己的项目,是独立于原库的,然后我们可以用Git对其进行操作,最后将确定版本pull request给原作者,待其同意后便可在原库基础上合为新版本,此时你也是开发者之一了。
Star:如果仅仅是想借鉴别人的库,而不是帮别人开发,我们可以将源码直接clone到本地,或者star收藏下来,待需要时再浏览。
Watch:如果想要关注某个项目,实时关注其动态变化,我们可以选择watch,之后该项目所有的动态变化如pull requests、发起issue等都会以消息、邮件等形式通知,这对跟踪项目开发动态是个很好的选择。
附一张浏览别人项目时的截图:
如果我们直接选择New pull requests或Create new files,会提示我们类似这样的消息:
由于我们没有操作权限,系统会默认将该库fork到自己的GItHub上,然后再进行下一步操作,同理类似新建branch和Upload files的操作也只能在自己的GitHub上完成。