0%

GitHub-Cli 的安装与使用

Take GitHub to the command line!
GitHub-Cli
想必GitHub大家都不陌生。一开始我也只是偶尔上去安装个软件啥的,但是自从几个月前我接触到用GitHub作为服务器和二级域名来做网站后,我访问GitHub也就更加频繁了。每天都要重复登陆、收验证码实在是有些浪费时间了,再加上这么慢的网速,于是我开始使用Git+Hexo本地生成+上传的模式。可用了一段时间后,我却发现有比Git更快、更强、更高大上的终端命令行——GitHub-Cli(以下也简称gh)。

一.Gh简介

GitHub-Cli,也就是GitHub最新推出的命令行终端,具有快速、高效等特性,给万千码农带来了极大的福利—— 更快地访问、克隆仓库,更快的提交更新,更高效的处理issuePR 曾经必须要到GitHub网页端才能修改的元信息,现在在CMD上就可以操作。
十几天前gh已经推出了最新的2.4.0版本。这款终端使用GoLang编写,配合一定的批处理文件就可以完成一切任务。最新数据显示该仓库已经有了2万6千个Star
项目官网 项目源码地址

二.Gh的安装

安装其实很简单,毕竟它不是GUI,只是一个类似Bash的东东嘛。下面以Windows为例:

1. 安装包安装(通用)

访问这个链接,找到Assets。然后你会找到很多很多的安装包,在比较下面的地方有一个gh_2.4.0_windows_amd64.msi的安装文件(貌似是64位的)。尝试下载它……
下载下来以后,直接运行安装即可。安装完成后,打开CMD运行:

1
$ gh --version  

如果CMD返回给你有用的信息(而不是“gh“不是内部或外部命令,也不是可运行的程序或批处理文件。),那么说明你已经安装好了!

2. Chocolatey安装

使用过Chocolatey的同志直接运行下面的命令!

1
2
$ clist gh
$ choco install gh

嗯……搞定了!

三. Gh登录时刻!

准备好你的GitHub账号,我们终于要登录了!登录也很简单,只要运行:

1
$ gh auth login  //这很简单吧!

然后就会有下面的提示语:

Auth_Login

图片来源于网络……所以不是我的用户名
两种登陆方法:你可以使用浏览器登陆账号后登录GitHub-Cli,也可以使用粘贴个人验证码登录。由于GitHub-Cli的内核也是用到Git的,所以它也会要求你配置Git,选择SSH或者HTTPS貌似都差不多。
如果最后它提示你类似Logged in as …说明你成功了!!

四.关于你的仓库

使用“项目托管平台”你没有仓库怎么行?用你本地的Git或者在线创建一个仓库,然后你就可以操作了。
New_Repo
创建一个仓库后,把它拉取到本地。这个时候GitHub-Cli就能派上用场了:

1
$ gh repo clone {username}/{repo_name}

现在你的电脑上应该就有了一个本地仓库。现在让我们来更新它!
首先我们来切换到一个新的分支(Git版本库中存放项目不同版本的一种机制) 。然后,做一点点修改,然后再提交回远程端 (在这里就是GitHub!)

1
2
3
4
$ git checkout –b test  //checkout -b 会创建并进入一个新的分支
$ mkdir Test12.17 //创建一个文件夹
$ cd Test12.17
$ echo “What makes unicorns cry?”>>test.txt //做一点点修改

现在我们已经生成了一个新文件夹,一个新文件并进入了一个新的分支。然后,用大家都熟知的Git来进行以下操作:

1
2
3
$ git add .  //缓存所有修改
$ git commit –m “Update 12.17” //创建一个更新记录
$ git push –-set-upstream origin test //上传 注意这里需要配置远程

现在貌似我们的更改已经被上传到GitHub上面去了!不过很明显,我们提交到的是一个叫做test的分支,我们还需要把他提交到master,即主分支上去。

五.PRs

其实我们的确可以将更新直接提交到master上,但这不是重点——在GitHub上更多的是多人合作项目,这时将更新代码直接提交到主分支上貌似就有点风险了 (万一有Bug呢) 。然后,我们就可以尝试一种新的方式——Pull Request。(感觉前面铺垫好多)
Pull Request 是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull RequestPull Request 本质上是一种软件的合作方式,是将涉及不同功能的代码,纳入主干的一种流程。这个过程中,还可以进行讨论、审核和修改代码。
所以,你学废了吗……

1.创建PR

现在我们来尝试创建一个新PR。当然,我们是个人项目,所以PR仅起到演示的效果。
如图所示,创建一个PR我们需要运行:

1
$ gh pr create  //等同于 $ gh pr cr

同时我们会需要提供例如标题、基本信息等等等等。当输出类似以下的提示时,你就成功了。

1
https://github.com/Guleixibian2009/test/pull/1

PR_Create

2.PR的合并

很明显,单独创建一个PR是没有用的。我们需要把他合并到主分支里!首先我们看一下到底有没有这个PR:

1
$ gh pr list

这个命令可以帮助我们查看所有的PR。比如下面的仓库就有2个进行中的PR:

PR_List

Em……只需要注意最上面那一行命令就可以了,后面两条是添加了几个限定条件。(看起来好复杂)
很明显我们的确有进行中的PR。为了将其合并入主分支,我们来Merge刚刚那个PR

示意图如下:

PR_Merge

当然在合并PR时我们会需要选择一些基本信息,一般情况下选择Create a merge commit。如果你不想删除这个test分支,你可以在第二个选项中选择No。最后它会有提示语:

1
Merged pull request #1

然后,我们怎么知道自己的PR真的真的已经被合并了呢?我们可以切换回原分支master

1
2
$ git checkout master  //不需要 -b ,因为不是新分支
$ gh repo sync //这个指令可以同步当前分支

如果你的master分支中多了一开始创建的文件,那么,这个PR就是真的被合并了。
最后,如果你还想了解GitHub-Cli更多有关命令,你可以运行:

1
2
3
$ gh <command> <subcommand> --help
//此处 <command>/<subcommand> 要用具体的命令代替
//如: gh repo clone --help

就可以获得有关命令的更多信息了!

六.写在最后

经过我的一通讲解,相信大家已经掌握了GitHub-Cli的一些基本操作,如登录,同步仓库,等等,并且“深入”了解了Pull Request。在此希望GitHub-Cli可以和广大码农一同进步,一同成长!我们下期再见~~~


THE END感谢您的阅读~

赏作者一杯作业......