【基本介绍】
GitKraken是一款Windows平台上的Git客户端,GitKraken可以连接到存储库,允许用户与资源的交互,轻松执行,管理任务管理、克隆和创建新的存储库的帮助下在现代界面简单和平稳运行。GitKraken是一个组织良好的图形用户界面设计来帮助你管理你的Git仓库风格。本集大部分功能的人会期望从一个Git客户端也集中在效率和易用性。【软件特点】
1、跨平台一致性GitKraken是一个基于Electron构建的Git客户端,可以在Windows,Mac和Linux桌面系统上本地运行。
2、直观的体验
视觉互动、分支、合并和提交历史
可调整大小的提交图,充分响应和易于理解。
3、无缝集成
最好的Git客户端应该与您的Git托管服务集成。这就是为什么GitKraken连接到流行的服务,如GitHub,Bitbucket和GitLab,使您的远程存储库更容易工作。
【软件功能】
1、Gitflow支持。2、1-Click撤消和重做。
3、键盘快捷键。
4、文件历史和责备。
5、子模块。
6、明暗主题。
7、Git钩子支持。
8、Git LFS。
9、应用内合并冲突输出编辑器。
10、工作和个人使用的多个配置文件。
11、GitLab CE,GitLab EE和GitHub企业集成。
【安装方法】
在本站下载gitkraken下载下来有一个.exe的文件,双击运行,它就会自动帮你安装完毕的!
【使用教程】
1. 首次打开程序第一次打开GitKraken程序时, GitKraken会提示需要登陆,可以用github.com的账号登陆,或者用邮箱创建账号登陆。
登陆时会向你推荐使用Pro版本,免费版本已经足够我们的日常使用,碰到相关的提示时选No即可。打开程序并成功登陆后显示如下界面(如图 1?2):
2. Authentication(授权)
我们一般用到比较多的情况是从服务器上clone一个已有的仓库。在clone服务器上的仓库前,首先需要设置/生成本地的加密解密密钥。
打开 GitKraken 的File => Preference => Authentication,出现如图所示的界面:
如果你之前没有使用过GitKraken这款软件的话(或者也没有生成过SSH密钥),需要先点击图中的绿色按钮,生成 SSH 的公钥和私钥。
然后点击 右侧的复制按钮
将公钥发送给Git服务器管理员,由管理员将你的公钥添加到服务器中。那么你就可以添加远程仓库,并克隆代码到本地了。
3. 修改用户名
为了方便项目中代码的管理,需要重新编辑用户名。
点击右上角的图像即可看到如下图 3?1所示的下拉菜单,鼠标悬于Profile上,会出现一个Edit按钮。
点击Edit按钮将会出现如图所示的信息编辑窗口:
我们需要把图中的Name和Email改成自己的姓名(中英文名皆可)和邮件。点击“Save changes”保存修改。
4. 初始化本地仓库
如果你需要在自己本地代码的目录下新建一个Git仓库,点击左上角的 File => Init Repo,点击 "Browse" 按钮选择需要初始化仓库的目录,然后点击 "create repository"即会出现如下图所示的界面。
图中的.gitignore 和 License 都是可选的。.gitignore文件是git在提交时会读取的一个文件,现在可以不用管它的作用是什么(如果项目是一个C++工程,我们可以选用预设好的C++.gitignore)。
5. 克隆服务器上的项目
首先,返回主界面,点击File => Clone Repo,选择 Clone with URL,如下图:
1) SSH 方式连接仓库
SSH 方式的Clone步骤:
①点击 右侧的按钮,打开文档对话框,选择存放代码的本地目录;
②填写服务器URL路径(仓库)以 服务器上的路径 /src/Test.git 为例,通过SSH方式连接到服务器上的仓库。
③URL填写 ssh://git@192.168.0.155/src/Test.git,将会以SSH方式连接服务器并克隆 Test仓库,代码存放在本地的 G:\18up\test 目录中。程序会自动为你创建一个子目录
④点击绿色按钮 ,克隆完成后在程序顶部会出现一些提示,如下图:
点击 Open Now 就会打开刚刚克隆到本地的仓库,点击OK则会确认该提示,但不执行操作。
2) 在服务器中查找链接
如果不知道服务器中仓库的位置,在浏览器中填写 192.168.0.155 并跳转。会出现以下界面:
找到想要clone的仓库,复制对应行的最右侧的 Git 链接,并将该链接粘贴入程序的 URL 文本框中即可。
3) SCP 方式连接仓库
SCP 和 SSH 两种方式的差别在于填写的URL不同(即第2步开始,步骤会有所不同),如下图:
填写的URL为 192.168.0.155:/src/Test.git,与SSh方式有所不同。
按照第3步的步骤,点击Clone按钮,在程序顶部即会出现一些提示如图
点击 “submit ” 即可下载服务器上仓库的代码。
若顶部出现后续选项,连续点击相应的绿色按钮(如:Open, Initialize等)
这里我们使用默认的git用户即可。
克隆好服务器上的仓库后,你还不能立即使用它来进行版本控制,有几个重要的地方需要修改:
鼠标移动到REMOTE树状图下方的origin处,
右键点击该栏(或者点击右侧的下拉菜单栏按钮),会出现如图示的下拉菜单:
使用SCP方式进行连接时需要注意:GitKraken程序(version3.5.0)有个bug,我们需要手动修正它。点击Edit origin 可以看到类似图的界面:
如果编辑框内的 155: 和 src 之间缺少斜杠的话,我们就需要在“155:”后面添加一个斜杠“/”(若程序没有这个bug就可以跳过这一步),否则在Push和Pull时就会出现找不到远程仓库的错误。
4) 完成仓库的克隆
当添加远程仓库并且成功拉取(pull)操作后,可以看到如图的程序界面:
7. 提交代码
1) 查看文件改动
修改了某个文件后,在程序右侧会出现已修改文件的列表,这里以Test.git 为例,修改了19264.h 的文件编码,将其改为utf8。Unstaged Files 方框内就会出现为19264.h
点击这一项,GitKraken的左侧区域和中央区域就会变成文件比较器,如图。
该图是以Diff View的形式显示文件,也就是显示当前提交和上次提交时该文件改动的位置。红色部分表示这次提交所删除的内容,绿色部分表示这次提交所增加的内容。
点击Diff View旁边的File View(图中的右上角)即可用普通的文本显示器形式查看文件内容。
这里可以看到改动的部分是将乱码的内容全部重新正确解码了。
2) 按文件进行提交
对代码进行修改后,如果认为这次修改的所有文件都没有问题,可以将所有文件全部存入暂存区,然后填写CommitMessage,具体步骤如下:
点击右侧 按钮可以把已经修改的所有文件存放到暂存区中。
如果只想提交某几个文件,鼠标移至该项所在位置,右侧即会出现 按钮,如x下图,点击就可以将这一个文件存放到暂存区。
2. 存到暂存区后,在暂存区就会出现这个文件:
3. 接下来填写CommitMessage(至少需要填写Summary),提交(commit)到工作目录,就能生成一个提交记录,便于以后回退代码版本或进行其它操作。
3) 提交文件中的一部分代码
提交代码时,如果不想提交整个文件,可以在GitKraken中点开该文件的比较视图(Diff View),比较上一次代码提交和本次修改的内容。
从图中可以看到,GitKraken已经将改动的代码按照区域进行分块了。
鼠标移至该块,右上方会出现一个 “discard huuk”按钮和 “stage hunk”按钮。如下图:
点击“discard huuk”将会暂存这一块修改的内容,保留绿色部分(即保留+2 ~ +4 行的内容,丢弃 -2 ~ -4 行的内容),
“stage hunk”将会丢弃掉改动的这一部分,保留红色的部分(保留-2 ~ -4 行的内容,丢弃 +2 ~ +4 行的内容)。
以19264.h为例,若保留一部分修改过的内容和一部分修改之前的内容,那么该文件既会存在于Unstaged Files列表中,也存在于Staged Files列表中,这是因为该文件还有部分没有提交到暂存区中。
从19264.h文件编码改为utf8后的提交记录开始,在文本编辑器中已经将LCD_Send_1 函数整个删除,红色区域就对应着代码的删除记录。若现在只需要删除 LCD_Send_1 函数中的switch判断语句,即图中的 -45 ~ -50 行代码。
注意到,鼠标移动到改动区域的某一行时,该行左侧会出现一个 “+”按钮,点击该按钮就会确认这个修改。
现在需要保留 -36 ~ -63 行的内容,点击图中的 “discard huuk”按钮,该界面会出现提示:File contents are unchanged. 而 Unstaged Files 列表中仍有 19264.h 文件,
点击列表中文件右侧的“stage hunk”按钮,将该文件提交到暂存区即可。将会提交的内容如下:
可以看到,将要提交的文件(记为A2)与之前的文件(记为A1)相比,少了A1中的45~50行,填写Commit Message,提交到工作目录。在文本编辑器中查看,能够发现LCD_Send_1 函数中的 switch 语句已经删除。
4) 放弃本次文件的改动
有些情况下,由于更改代码造成了编译无法通过等错误时,想要放弃这次对文件的修改,将文件还原成上一次提交后的状态,一种简单的恢复文件的方法就是,在Unstaged Files 列表中找到这个文件(如Chip_ADC.h文件),右键点击,出现如图所示的菜单:
点击 Discard changes 这一项,在程序顶部出现提示:This will discard… Are you sure…?
然后点击下图中的红色按钮,放弃更改。
这将会丢弃本次对文件的修改,将文件还原到上一次提交的状态。但是请注意,这样做有会导致这次对该文件的修改全部丢弃,需要慎重对待。
推荐的做法是点击Unstaged Files列表中的文件,查看改动的内容,在不需要改动的地方点击 Discard Hunk 按钮,放弃这一部分的改动。
5) 修改提交记录的描述信息
如下图,以Test仓库为例,点击提交记录区的某个提交记录(如本地master分支指向的当前记录)
在程序右侧的工作区界面会出现这个提交记录的信息。
图中:
第1区域是提交这次记录时填写的描述信息。点击方框,可以修改描述信息。
第2区域是这次提交的文件信息,图中显示了这次提交修改了一个文件,这个文件是19264.h文件。
6) 查看文件的历史修改
右键点击19264.h文件,右键菜单中会出现 File History 和 File Blame 的选项。两个选项都可以显示文件的修改历史,修改历史的时间跨度为从第一次提交记录到当前选择的提交记录。
File History 将会以Diff View 的形式显示每次提交记录与前次提交记录的差异;
File Blame 将会以File View 的形式显示该次提交记录完成的文件内容。
点击其中的一个,会出现如下图的文件历史列表:
这里只有两次提交记录中修改了改文件。点击历史记录中的提交记录,能够查看这次提交记录中该文件的改动内容。
8. 本地分支和标签
1) 在提交记录区中查看分支状态
提交记录区中每一个分支都位于一个提交记录所在的行中。
从图中可以看到,服务器上的master分支停留在整理格式(把这个提交记录记为origin_master_HEAD)这个提交记录处,
在本地的master分支(将master分支所在的提交记录记为master_HEAD)里,将19264.h文件编码改成了utf8。
而后从origin_master_HEAD处创建了一个新分支:testconflict,对Chip_ADC.h和19264.h这两个文件都做了修改,把这里的提交记录记为test_HEAD。
图 2?1 提交记录示意图
2) 创建本地(Local)分支
在GitKraken中央区域的提交记录处右键点击,出现如下所示的下拉菜单:
点击 Create branch here 将会提示出入分支名(下图的enter branch name)
这里将新分支名命名为 testnewbranch。确定后将在当前提交记录处创建一个新的分支。程序左侧的LOCAL菜单中将会出现分支 testnewbranch,如下图:
创建完新分支后,程序会自动跳转到新创建的分支中。
3) 切换本地(Local)分支
图中有三个本地分支 master ,testconflict和testnewbranch(当前版本分支为testnewbranch,左侧有勾的表明该分支是当前所在的分支):
要切换到其它的分支(如切换至master分支),有几种方法:
a) 将鼠标移至master分支所在栏,点击右侧按钮(红色方框圈出的按钮),或右键点击该栏,
出现如下图的下拉菜单,点击Checkout master,即可切换到分支master。
b) 直接在本地分支列表中双击 该分支也可以切换至该分支
4) 删除或重命名本地(Local)分支
右键点击分支列表中的某个分支,这里以testnewbranch为例,
点击 Rename testnewbranch,在程序顶部出现提示:
填写新名称,如“renamedbranch”,填好后,点击 Submit 按钮。本地分支列表中的分支名称就会有相应的改变。需要注意,更改后的分支名不能与已有的分支名重复。
若点击 Delete testnewbranch,同样的,在程序顶部出现提示:
点击 Delete 按钮将会把该分支从本地删除。
5) 专注于分支及其所在的路径
右键点击本地分支或远程分支,在下拉菜单栏中选中Hide项,即可在中央提交记录区域隐藏该分支,以隐藏testconflict分支为例,在本地的分支列表中可以看到testconflict分支左侧的标记变为灰色:
点击菜单中的Solo项,将会仅显示这一条分支。
6) 标签(TAGS)
TAGS表示当前工作区中存在的标签。
右键点击GitKraken中央区域中的提交记录,出现下图所示的菜单,点击可以在当前提交记录处创建一个本地的标签。
这里需要注意,一般在本地打上TAG后,上传代码时不会自动同步到服务器,必须在TAGS标签下选中标签,右键push TAG到服务器(origin)上才能被共享(如图 2?11)。
(如果需要把本地所有标签全部上传到服务器上,在命令行或终端中用命令 git push --tags 将本地所有标签上传至服务器。)
9. 远程(Remote)仓库
1) 添加远程仓库
一般在本地新建仓库后,需要添加一个远程仓库用于push/pull代码。鼠标移至GitKraken左侧区域的REMOTE栏,点击
再点击该栏右边出现的
将会出现如下图所示的界面:
Name 填写的是远程仓库的名称,用于标识不同的远程仓库。Pull URL 和 Push URL 一般是一样的,这里填写的是服务器上的Test仓库。
填写完后,点击 Add Remote 按钮,完成远程仓库的添加。
如果是通过克隆的方式拷贝远程仓库中的代码,那么一般是不需要添加远程仓库的,程序会自动为你添加一个叫做 origin 的远程仓库。
2) 向远程仓库添加分支
添加好远程仓库后,程序会自动在本地添加远程分支的指针(一般为origin/master)。克隆远程仓库时程序也会添加远程分支的指针。
要向远程仓库中添加新分支,需要先在本地创建一个新分支,参考8.2) 节 创建本地(Local)分支 的内容。
假设现在已经在本地创建了一个叫做testnewbranch的分支,并已切换至该分支。
点击程序顶部的
将其推送到服务器仓库origin上。
在程序顶部会出现提示:What remote/branch should “testnewbranch” push to and pull from? 以及下图所示的内容
点击 Submit 按钮,将会在远程仓库中新建叫做“testnewbranch”的分支,并将本地分支推送到服务器上的testnewbranch分支。在远程仓库origin的分支列表中就会出现testnewmaster分支,如下图:
3) 删除远程仓库中的分支
若远程仓库中有些分支是意外推送上去的,可以右键点击远程仓库中的分支列表,以删除远程仓库的testnewbranch分支为例,
在下拉菜单中找到Delete origin/testnewbranch选项如图 3?4,点击即可删除远程仓库中的testnewbranch分支。
4) 修改本地分支和远程分支的对应关系
一般本地分支和远程分支是一一对应的,如本地的master分支应该对应于远程分支origin/master,一般不需要手动修改分支的对应关系。
右键点击本地的分支列表,比如点击master分支,出现如下图所示的菜单:
点击 Set Upstream,在程序顶部出现提示:
Origin 处选择的是远程仓库,紧随其后的文本框是要创建的远程分支名,这里填写testmaster以便向远程仓库中添加testmaster分支。点击 Submit 按钮,将会改变本地分支推送和拉取时对应的远程分支。