打算将 Github 作为未来科研工作中的代码阵地,进行版本管理,并搭建 Github 托管的个人博客记录自己读过的一些文献和算法等。所以根据自己学习的过程,开辟了一个 Github 使用教程系列博客,本篇介绍 Github (网页端) 最基本的一些操作,非常适合小白!
后面的文章还会介绍 Github (桌面版) 的使用,协同工作以及如何搭建 Github 托管的个人博客等方法,敬请期待 o( ̄▽ ̄)ブ
新建仓库
- 登录 GitHub 官网,创建/登录个人账户
- 点击图中
+
下拉菜单中的New repository
- 进入创建仓库的界面,图中
红色框
部分可根据自己的实际情况进行设置,蓝色框
可先默认设置None
,设置完仓库的基本信息之后点击Create repository
。
Success!如下图3所示 o( ̄︶ ̄)o
创建分支
分支是一种在某个存储库内不同版本下进行工作的方式。
新建完仓库之后,默认情况下会生成图3中红色框高亮出来的master
分支,该分支被默认为主分支。
您可新建其他分支来修改并测试代码,这些分支为主分支的副本(Copy),所以其内部的各种操作不影响主分支,只有将其成功提交合并到master
主分支上,主分支才会受到影响,就像一个沙盒将您的工作区和成品区分隔开!
分支的工作流程如下图4所示。
- 选定工作仓库如刚新建的Navigation algorithm。
- 点击文件列表顶部图3
红色框
显示分支:master
下拉列表。 - 在新的分支文本框中输入分支名称,点击
Create branch
或者直接按键盘Enter
。
提交修改
上步中新建的分支NewBranch
是master
主分支的副本,在该副本分支进行工作,保存的更改成为commits
。每一个提交都有一个关联的提交消息,该消息说明了进行更改的原因,且存储了更改的历史记录,这样方便其他的合作者可以了解您所作的工作及原因。
这里以NewBranch
分支中README.md
文件为例进行编辑和提交来介绍此步骤。
- 点击
README.md
文件。 - 点击需要编辑的文件视图右上角的
铅笔图标
(图3右下方红色框高亮)。 - 在编辑器中进行相应的修改。
- 填写您所作修改的提交消息信息,包括修改的名称以及原因等等。
- 点击
Commit changes
按钮。
提交的更改只作用于选定分支的文件上进行,这里是
NewBranch
分支中的README.md
文件,而对于主分支master
没有任何作用。
拉取请求
拉取请求(pull requests)是Github协作的核心。当您创建请求时,您是在提出更改,请求合作者检查并提取您的贡献将其合并到主分支中。拉取请求显示了主分支和工作分支内容的差异。
两分支内容差异:
增加的内容——绿色
减少的内容——红色
提交后即使在代码完成之前也可以打开请求并开始讨论。
通过在请求消息中使用Github的@系统,您可以要求特定人员或者团队提供反馈。您甚至可以在自己的仓库中打开拉取请求,然后自己合并它们。这是在从事大型项目之前学习Github流程的好方法。
- 点击
Pull requests
选项卡,在该页面中点击绿色New pull requests
按钮。如图7所示。
- 在示例比较框中,选择要比较的分支,这里选择
base
为master
,compare
为NewBranch
,表示将NewBranch的内容合并到master中去。点击绿色按钮Create pull request
。如图8,其中红色部分是相比于master中删除的部分内容,绿色是增加的内容。
- 给您的请求添加一个标题,并简述您所做的更改。根据需要,若是最终修改版可选择点击
Create pull request
,若是本次为草稿未来还需再修改请选择点击Create draft pull request
(这里的请求将不会被合并直到该修改为最终版为止)。
提示:您可以在信息描述中使用表情符号和拖拽图片和GIF(如图9,添加了jpg和gif),然后再拉取请求。
Success!如下图10所示 o( ̄▽ ̄)o
合并请求
本步骤实现将工作分支NewBranch
中对README.md
所做的修改合并到主分支master
中。
- 下拉绿色按钮
Merge pull request
,根据需要进行选择点击。 - 点击
Confirm merge
,将修改合并到master
中。 - 当NewBranch的编辑工作全部完成后,可删除分支点击
Delete branch
按钮,如图12。
PS:可在图11中箭头处填写相关意见进行讨论,并点击绿色按钮Comment
。
Merge pull request 的三种方式 (可点击查看详情)
Create a merge commit :它是最完整的一种合并方式。这种方式合并时不仅保留了所有的提交版本,还保留了所有的修改轨迹。
Squash and merge :这种方式是最不完整的合并方式,既不保留历史版本,也不保留修改轨迹。这种方式的好处是对于纯文字编辑者在修改错别字、病句等非关键性语句时,为简洁方便,推送时可以直接忽略版本和轨迹。
Rebase and merge : 这种方式是前两者的中间值,它保留了提交版本,却不保留各版本的修改轨迹。
Success!如下图12所示 o( ̄︶ ̄)o
图12中的蓝色框
Revert
按钮是可以拉取一个新的请求来恢复这些修改
历史版本的删除与还原
这里的历史版本主要是指除了主分支master之外您新建的其他分支。
- 删除
方法1:见合并请求的第3步。
方法2:选中仓库的Code
选项卡,找到branches
,在新页面中点击垃圾桶的图标,如图13所示。
- 还原
- 点击选项卡
Pull requests
,然后点击红色框2 Closed
,选择带有紫色分支图标的请求。如图14所示。
- 进入步骤1请求页面,点击按钮
Restore branch
,从而恢复已删除的分支,如图15。
学习资源
本篇博客借鉴了如下的学习资源,在此列出供大家学习:
-
Github guide
网址:https://guides.github.com/
简介:介绍了玩转github的必备技能,很适合入门 -
GitHub.com 帮助文档
网址:https://docs.github.com/en
简介:非常全面的资料,见下图
- GitHub.com 帮助文档
网址:https://lab.github.com/
简介:特别棒的一个线上课程,参加课程之后跟着引导可在自己的账户建立公开课程的仓库,从而在github的网页端进行实操交互,下面两个图为我参加的Introduction to GitHub的课程,根据每一步小助手的指示来完成相应的操作,学习起来特别高效💪
好辣,本系列的第一篇就到这里(●’◡’●)