Github与GitKraken的基础使用(一)[学习笔记]

Github与GitKraken的基础使用(一)[学习笔记]

  • Git与Github
  • 使用Github.com
    • 1.仓库(repository)
    • 2.创建一个repo
    • 3.在仓库中添加文件
    • 4. Commit
    • 5. Branch
    • 6. Pull request 与 merge
    • 7.删除仓库
  • 使用GitKraken
    • 1.验证
    • 2.打开仓库
    • 3. 在仓库中修改文件
    • 4.创建与合并branch

Git与Github

Git是一个版本控制软件,而Github
是基于网络的Git仓库。在Github上用户可以分享各种开源的项目。

Git可以记录文件或项目的轨迹,保存着从出生以来做过的各种增删与改进。我们可以使用Git回到项目的任何一个历史时刻查看它的状态。同时,Git是分布式的版本控制软件,参与合作的每一台电脑都是主机。

Github的使用场景大致是多人在线共同完成一个项目。大家可以随时随地查看项目的进度,并且贡献自己的力量。Github为此提供了repo,commit,branch,pull request,merge等机制。本文分别从网页版本(github.com)与被朋友疯狂安利的Gitkraken版本探索其使用方法。小白文章,用以加深自己的记忆与理解,同时也分享给和我一样刚刚起步的小白们 :)当然也欢迎大家来讨论指正。

使用Github.com

1.仓库(repository)

Github里最基础的概念就是仓库(简作repo)了。简单理解,一个repo就是一个项目。里面可以有各种该项目需要的文件,例如图片,文本,代码,视频等。Github上的一些重要操作也是以repo为基本单位的。下面就是一个Github的repo。可见其中只有一个文件:README.md。
Github与GitKraken的基础使用(一)[学习笔记]_第1张图片

2.创建一个repo

首先要注册一个Github账号。然后选择repositories选项卡,点击绿绿的new按钮。

Github与GitKraken的基础使用(一)[学习笔记]_第2张图片

在弹出的页面中输入仓库的名字,描述,并且勾选"Initialize this repository with a README"。名字不要带有空格,虽然不会出现错误提示,Github会自动补充‘-’。公有与私有选项决定了这个仓库是否所有人可见。README.md相当于一个自我介绍,会在仓库中显示出来,方便他人查阅克隆,所以一般默认勾选自动创建README。而下面的两个选项框是Github的忽略规则与许可证明,将在以后的文章里提到。填好相关信息,点击create repository即可创建一个仓库。

Github与GitKraken的基础使用(一)[学习笔记]_第3张图片

3.在仓库中添加文件

创建好仓库的第一件事情肯定是添加文件了。如果是文本或者代码文件,可以直接点击create new file按钮,在新页面中输入文件名,后缀名,以及文件的内容即可。

输入完成,发现下面有一个commit new file的对话框,在框中可以为这次创建文件的行为进行备注。备注完成,点击commit new file按钮即可。

值得注意的是,Github中没有所谓save的字眼。它的“保存工作”是通过commit完成的。commit是承诺的意思,给人一种很庄重的感觉。可能是通过这个字眼,让我们的每一次提交更加仔细与谨慎?
Github与GitKraken的基础使用(一)[学习笔记]_第4张图片
这里我新建了一个叫count_numbers.txt的文本文件,用于后续的实验。如果想导入例如图片文件,则在仓库页面选择upload files,通过拖拽的方式添加,同样,需要commit new file。添加文件后的仓库如下图所示,红色方框即为动作的备注。同时可以发现,整个仓库有2次提交(commit),分别是readme以及count_numbers.txt;1个分支(master branch),后面会提到;1个贡献者(contributor),即我自己。最下方是README.md的内容,为项目的参与者提供基础信息。
Github与GitKraken的基础使用(一)[学习笔记]_第5张图片

4. Commit

上一部分说到了commit,这里拿出来再说一遍,是因为它关系到Github的版本控制。不光在创建文件的时候需要commit,每一次对文件进行修改都需要commit。打开刚刚创建的文件count_numbers.txt,点击铅笔按钮进行编辑。
Github与GitKraken的基础使用(一)[学习笔记]_第6张图片
在文件的末尾加上4与5,并且在commit changes对话框中填写备注“adding 4 and 5”。回到文件浏览界面,点击铅笔按钮左边的History按钮。
Github与GitKraken的基础使用(一)[学习笔记]_第7张图片
可以发现这个文件所有经历过的修改都列了出来,从它出生到现在的版本都在,并且可以访问。最右边红色框标注出的是commit hash(实际要长很多很多),是每一次commit独一无二的标志。总的来说,每次对repo进行修改都需要commit;每一次commit标志了一次版本更新。

5. Branch

分支指的是当前版本的一个可能发展的方向。Github提供的分支功能允许多个人对同一个版本进行不同的编辑。在创建一个repo时,会默认创建出一个master branch,可以称作主线。在使用branch功能时,使用者会获得一个副本,在副本上可以做任意的更改,且不会影响到master branch。在repo主界面点击 branch:master 下拉菜单,输入想要创建的分支的名称,并且点击 create branch 即可。
Github与GitKraken的基础使用(一)[学习笔记]_第8张图片
可以发现,新的分支:editing-numbers下拥有与创建分支时master branch完全相同的文件与内容,是它的一个副本。且在不同的分支下对文件编辑与commit不会影响到其他的分支。

下面对新建的分支进行更改。编辑count_numbers.txt,增加数字6与7。返回到master branch查看,发现并无修改记录。
Github与GitKraken的基础使用(一)[学习笔记]_第9张图片

Github与GitKraken的基础使用(一)[学习笔记]_第10张图片

为了更加清楚直观的查看分支之间的关系,我们可以使用github提供的图像化工具。在repo页面点击Insights选项卡,在左侧的栏目中选择Network,就可以看到当前的Network Graph。
Github与GitKraken的基础使用(一)[学习笔记]_第11张图片
图中可以清晰的看到,黑色的是master branch,蓝色的是创建的editing-numbers branch。其中editing-numbers branch在repo的第三个版本处创建。想查看每个版本的简易信息,只需将鼠标放到相应的节点处。Network Graph形象地展示了分支与分支的关系,对于理解branch有很大的作用。

6. Pull request 与 merge

Branch提出了一个当前版本可能的发展方向,而想要这个方向成为现实,就需要pull request 和 merge。

Pull request 是在新建的branch对master branch的副本进行修改后,发起的请求。它表示:我想要对master branch进行如下的修改。而merge是在master branch审核同意的情况下,将一个pull request合并到master branch中,产生了一个新的版本。举个简单的例子:一家公司有一个项目要完成。一个组里的人都拿到了项目的雏形(master branch),各自去想怎么把项目完成(branches)。每当一个人想好了,他就把自己的想法发出来,供大家或者项目主管讨论审核(pull request)。有很多份想法,有的大家或项目主管觉得可以,就通过了(merge),而不行的就淘汰了。这个过程完成之后,项目就有了新的进展,即新的版本。

创建一个pull request要在repo界面点击branch右边的 new pull request。之后会打开一个比较页面,用于比较两个分支版本的不同。base选择master branch,compare选择想要merge的branch。稍向下拉可以看到两个版本的不同在哪里。其中可能涉及到增加与删除,增加用绿色标注出来,删除用红色标注出来。下图可见6与7是增加的内容,用绿色标注出来。Github与GitKraken的基础使用(一)[学习笔记]_第12张图片
在该页面填写本次pull request的主题以及详细叙述,点击create pull request即可。

当收到一个pull request的时候,repo界面的pull request选项卡会出现标记。点击打开,可以查看pull request的具体信息。红色框是发起pull request时填写的主题与详细叙述;绿色的框是文件的比较器;黄色框可以对pull request进行merge;黑色框可以对这次的pull request进行评价,或者拒绝。
Github与GitKraken的基础使用(一)[学习笔记]_第13张图片
点击绿绿的merge pull request即可完成merge。回到repo的master branch,发现文件被修改。打开network graph,可以清楚看到merge过程的发生。
Github与GitKraken的基础使用(一)[学习笔记]_第14张图片

7.删除仓库

当一个仓库不想要了,可以在github网页页面将其删除。在repo界面点击Settings选项卡,拉到最下面有一个叫Danger Zone的红色方框,最后一项“Delete this repository”可以删除当前的仓库。因为删除仓库是个危险的举动,所以系统会再三确认,以防误删。

以上就是Github最为基础的操作与使用。其余的将会在之后的文章中提到。

使用GitKraken

虽然网站版本的Github已经很通俗易用,但是其效率以及美观程度没有一些gitclient做得好。GitKraken就是被朋友疯狂安利的一款gitclient。用后感觉挺好上手的,也较为美观。

GitKraken有自己的官网,软件可以在官网上下载,但是速度堪忧,好像要搭梯子。也可以百度一下,资源还是很多的。下载安装完成,一般选择使用github账号登录,然后会跳转到网站,验证通过即可。之后个性化的设置自己填就可以了。

GitKraken的工作方式,我总结的是将一个在线的github仓库克隆到本地进行操作。操作完成之后可以同步到github或者发起pull request。而这一切都建立在与github建立安全连接的基础上,所以第一步要说到的就是验证。

1.验证

进入GitKraken的首选项,有一栏叫做Authentication。点进去选择Github.com。在没有进行验证之前,应该是下面这个样子。点击绿色的connect to github按钮。
Github与GitKraken的基础使用(一)[学习笔记]_第15张图片
经过漫长的等待,会跳转到一个验证网站,点击continue authorization即可。回来之后会发现页面变成了下面这个样子,然后点击绿色的按钮,再经过漫长的等待,就ok了,成功建立ssh连接。
Github与GitKraken的基础使用(一)[学习笔记]_第16张图片

2.打开仓库

在GitKraken最最上面一栏找到一个文件夹的符号。这里提供了打开仓库的几种方式。其中Open是打开本地已有的或者最近打开的仓库。Clone是克隆一个仓库(也就是复制到本地)。这里可以选择使用url克隆,也可以选择从Github.com直接克隆,因为我们之前已经建立了ssh连接。其中使用url克隆就是去github.com网站找到要克隆的repo,然后点击绿色的clone or download按钮,在弹出来的对话框中复制url粘贴到此即可。这个太麻烦,可以直接使用GitHub.com克隆。
Github与GitKraken的基础使用(一)[学习笔记]_第17张图片
在Clone选项下选择GitHub.com(前提是与github建立了ssh连接),填写本地存储目录,之后选择要克隆的仓库,这里选择的是上面使用的hello-world仓库。点击clone the repo!按钮,等待读条即可。
Github与GitKraken的基础使用(一)[学习笔记]_第18张图片
打开刚刚克隆到的仓库,发现GitKraken的出界面大致分为3块。黑色的是导航块(自己起的),local是本地拥有的branch,remote是远端打开的repo。可见远端的repo有两条branch,而本地打开的是master branch。在红色框中双击editing-numbers即可打开editing-numbers branch。红色框相当于github.com的network graph,记录了版本的变更,比network graph更生动。以下也称这块区域为network graph。绿色框是每一个版本的详细信息,包括名称以及含有的文件。
Github与GitKraken的基础使用(一)[学习笔记]_第19张图片
除了这种打开方式,还有一种叫init。这个可以在本地或者github云端创建一个repo。方法与从网站创建无异,这里不再赘述。

3. 在仓库中修改文件

注意到仓库中的文件显示在上面图绿色框的右下半部分。在这里右键可以选择create file来新建文件。同时也可以单击现有文件进行修改。注意这里与网站不同的地方是,网站每修改一个文件,就要进行commit,而GitKraken提供了一个缓冲区域,可以将多个修改的文件放进去,进行一次commit。

在network graph中选择一个版本(最新的版本),点击要修改的文件,count_numbers.txt,加上8与9。使用快捷键ctrl+s进行保存,发现右边出现了unstaged file和staged file。其中unstaged file中放的是未确认的修改文件,staged file中放的是已确认的修改文件,即准备提交的修改文件。当count_numbers.txt的修改确认完毕后,鼠标移向他并点击stage file按钮,即可将其移动到staged file栏目下。staged file栏目可以放很多文件,在commit message中填写对本次commit action的描述,点击commit changes即可。
Github与GitKraken的基础使用(一)[学习笔记]_第20张图片
在commit之后,network graph发生了下面的变化,出现了两个master branch。仔细观察可以发现,最上面的master branch右边是一个电脑的图标,而下面的是我的github头像图标。这说明在本地,master branch被修改掉了,而github上还是原来的样子。通过看绿色框的1↑符号也可得知,本地的master branch比remote端领先了一个commit。同理1↓则表示本地的branch比remote端落后了一个commit。editing-numbers branch右边两个图标都有,说明这个branch在本地与github是同步的。这个也不难理解,我只是在本地对master branch进行了一次commit,还没有同步到github而已。
Github与GitKraken的基础使用(一)[学习笔记]_第21张图片
那么怎么同步到github呢?只需点击工具栏中的push按钮即可。注意在push之前,确定当前选择的是正确的branch(使用双击切换branch)。点击之后下边的master branch消失了,去github.com查看发现文件被修改掉了。

有的时候remote端已经发生了变化,而本地库还是旧的版本。这种情况点击工具栏pull右边的下拉菜单,选择fetch all即可查看remote端与本地的差别。在需要升级到remote端的情况下,点击pull按钮即可。

4.创建与合并branch

在GitKraken中创建branch很简单,任选一个版本右键,在菜单中选择create branch here,输入branch name即可。同样这个branch是在本地的,没有push的情况下是不会更新到remote端的。合并branch时,与在github.com上略有不同。在本地合并branch时,不需要pull request,直接将要合并的分支拖拽到master branch上,在弹出的菜单栏中选择merge xxx into xxx即可。如果此时点击push按钮,这个merge action在github上也会生效。
Github与GitKraken的基础使用(一)[学习笔记]_第22张图片
但是这样的做法未免过于暴力,在merge之前还是提出来让大家看看比较好。使用GitKraken也可以创建pull request。在左边栏目中remote下有一个pull request选项,点击右边的➕可以创建pull request。
Github与GitKraken的基础使用(一)[学习笔记]_第23张图片
填写好title与description,还可以添加reviewers(将会review这个pull request的人)以及labels(这个pull request的分类),点击create pull request即可。这个pull request可以在github.com上看到以及处理。

以上就是GitKraken的基础应用

你可能感兴趣的:(git,github)