掘金 后端 ( ) • 2022-08-08 21:05

image.png

一、前言

其实之前自己比较喜欢用 git 命令,主要是因为写久了也就那几个命令,已经习惯了。后来工作看到同事们都用 GitKraKen 来提交代码,本着开发工具一致原则也开始安装使用,发现遇到了一个大宝藏,界面交互简单优美,完全不用使用说明就上手了,相比 sourcetree 友好多了,特做推荐!

二、简介

1. 安装

完全免费~: https://www.gitkraken.com/ ,界面如下

gitkraken6.5.3本地库开始收费,旧版本下载地址

收费版本

{
    "version": "6.5.3",
    "url_deb": "https://release.axocdn.com/linux/GitKraken-v6.5.3.deb",
    "url_rpm": "https://release.axocdn.com/linux/GitKraken-v6.5.3.rpm",
    "url_targz": "https://release.axocdn.com/linux/GitKraken-v6.5.3.tar.gz",
    "url_exe": "https://release.axocdn.com/win64/GitKrakenSetup-6.5.3.exe"
}

免费版本

{
    "version": "6.5.1",
    "url_deb": "https://release.axocdn.com/linux/GitKraken-v6.5.1.deb",
    "url_rpm": "https://release.axocdn.com/linux/GitKraken-v6.5.1.rpm",
    "url_targz": "https://release.axocdn.com/linux/GitKraken-v6.5.1.tar.gz",
    "url_exe": "https://release.axocdn.com/win64/GitKrakenSetup-6.5.1.exe"
}

建议安装:https://release.axocdn.com/win64/GitKrakenSetup-6.5.1.exe

注意:6.5.1免费版本下载地址:

https://www.ihawo.com/archives/160.htmlwww.ihawo.com/archives/160.html

安装免费版本后注意禁止自动更新:

参考:GitKraken要收费怎么办?mac版解决办法:禁止自动更新 GitKraken要收费怎么办?windows版解决办法:将安装目录下的Update.exe直接删除

三、简单使用

1. 查看分支

左侧栏有LOCAL(本地仓库)、REMOTE(远程仓库)、STASHES(修改点)、TAGS(标签)、SUBMODULES(子模块),相当于省去 git branch,直接一目了然所有分支

2. 查看提交信息

中间部分按时间顺序记录提交信息,小电脑 icon 表示本地更新了,靶子 icon 表示远程更新了,右侧就是提交信息和时间

3. 提交代码

右侧是改了代码之后提交改动以及信息的,Stage all changes 相当于git add填写信息commit 之后就相当于git commit 更新本地仓库,这时就会有小电脑,之后中间部分的push 按钮就推送到远程,这时就会有靶子

4. 解决冲突

上半部分左右两边是冲突的部分可以勾选选择以哪个为准,最终输出就是下半部分,右上角就是提交冲突,真的是简单明了

详细使用GitKraken

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

下载安装完成,一般选择使用github账号登录,然后会跳转到网站,验证通过即可。之后个性化的设置自己填就可以了。

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

1、验证

进入GitKraken的首选项,有一栏叫做Authentication。点进去选择Github.com。在没有进行验证之前,应该是下面这个样子。点击绿色的connect to github按钮。

image.png

经过漫长的等待,会跳转到一个验证网站,点击continue authorization即可。回来之后会发现页面变成了下面这个样子,然后点击绿色的按钮,再经过漫长的等待,就ok了,成功建立ssh连接。

image.png

2、打开仓库

在GitKraken最上面一栏找到一个文件夹的符号。这里提供了打开仓库的几种方式。其中Open是打开本地已有的或者最近打开的仓库。Clone是克隆一个仓库(也就是复制到本地)。这里可以选择使用url(HTTP方式)克隆,也可以选择从Github.com直接克隆,因为我们之前已经建立了ssh连接。其中使用url克隆就是去github.com网站找到要克隆的repo,然后点击绿色的clone or download按钮,在弹出来的对话框中复制url粘贴到此即可。这个太麻烦,可以直接使用GitHub.com克隆。

img

在Clone选项下选择GitHub.com(前提是与github建立了ssh连接),填写本地存储目录,之后选择要克隆的仓库,这里选择的是上面使用的hello-world仓库。点击clone the repo!按钮,等待读条即可。

image.png

提交本人码云账号(用于校验是否有权限克隆项目)

img

打开刚刚克隆到的仓库,发现GitKraken的出界面大致分为3块。

  • 黑色的是导航块(自己起的),local是本地拥有的branch,remote是远端打开的repo。可见远端的repo有两条branch,而本地打开的是master branch。在红色框中双击editing-numbers即可打开editing-numbers branch。
  • 红色框相当于github.com的network graph,记录了版本的变更,比network graph更生动。以下也称这块区域为network graph。
  • 绿色框是每一个版本的详细信息,包括名称以及含有的文件。

image.png

除了这种打开方式,还有一种叫init。这个可以在本地或者github云端创建一个repo。方法与从网站创建无异,这里不再赘述。

3、在仓库中修改文件

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

image.png

在network graph中选择一个版本(最新的版本),点击要修改的文件,count_numbers.txt,加上8与9。使用快捷键ctrl+s进行保存,发现右边出现了unstaged filestaged file。其中unstaged file中放的是未确认的修改文件,staged file中放的是已确认的修改文件,即准备提交的修改文件。当count_numbers.txt的修改确认完毕后,鼠标移向他并点击stage file按钮,即可将其移动到staged file栏目下。staged file栏目可以放很多文件,在commit message中填写对本次commit action的描述,点击commit changes即可。

image.png

在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而已。

image.png

那么怎么同步到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上也会生效。

image.png

但是这样的做法未免过于暴力,在merge之前还是提出来让大家看看比较好。使用GitKraken也可以创建pull request。在左边栏目中remote下有一个pull request选项,点击右边的➕可以创建pull request。

image.png

填写好title与description,还可以添加reviewers(将会review这个pull request的人)以及labels(这个pull request的分类),点击create pull request即可。这个pull request可以在github.com上看到以及处理。

5、模糊搜索:(cmd + p)

在进行模糊搜索的时候会在当前页面弹出一个文本框,根据你搜索的关键词进行全局搜索。(设置,文件等内容都会被搜索)译文 : 使用模糊搜索将会打开模糊搜索器,出现一个你可以通过命令打开 项目文件 , 当前项目的文件搜索历史和设置选项等等 的文本输入框

快捷面板_具备模糊搜索功能( cmd + shift + p )

在使用快捷面板之后常用的功能会默认显示在下拉列表中,你也可以手动模糊搜索相关功能

译文 : 使用快捷面板将打开一个类似模糊搜索器的文本框,他被用来执行你当前项目的命令。举个例子:你可以全部读取,创建或者退出一个stash等等。他会通过模糊搜索将相关命令显示在列表上。

img

使用 GitKraken 初始化一个项目

1 首先在码云上建立一个项目,注意不要添加 .gitignore

2 进入 GitKraken 如果你没有账号的话可能需要自己创建一个

3 在面板中点击init 在 New responsity path中添加想要创建的工程的源文件的路径 ; 如果项目中有设置好的 .git忽略文件可以不添加剩下的两个文本框(默认为空)

4 添加远程路径 :在remote中点击+按钮在弹窗的添加对应内容 :

  • Name:添加自定义的远端路径的名字
  • PullUrl(与PushUrl默认是同一个):添加想要提交到码云上对应项目的网址需要注意的是这是并不会真的获取到远端的分支,需要在下一步填写完码云账号后才会在码云中获取

5 此时在 GitKraken 中已经获取到了本地源文件。我们需要如图将其放在缓存仓库,添加必要的注释并commit需要注意的是在这里提交并不会提交到远端依旧在本地端

6 添加码云账号并获取远端master(以及其他分支)

  • 点击push按键,会弹出如图提示 :在文本框中添加对应项目的码云账号的邮箱和密码。
  • log in

7 推送:如下图提交的分支格式需要注意

  • 分支格式remote的自定义命名/想要推送到的分支

8 由于默认使用的是faster-push 但是这种模式不支持将项目上传到码云仓库(可以实现提交修改)这里再次点击push按钮并依据下图选择强制推送按钮

9 至此项目就已经在码云上创建完成了可以看到项目的提交时间是七分钟前