GitKraKen
一、安装并破解
GitKraKen是收费工具,有能力的朋友请支持正版
1.下载最新版
2.将系统中release.gitkraken.com api.gitkraken域名屏蔽掉
这个目的是为了防止更新gitkraken,若不屏蔽掉这个域名,那么每次打开GitKraken是默认去检查是否有更新的,如果有那么将更新到最新版,并且破解的将失去作用。
2.1修改host文件
修改C:\Windows\System32\drivers\etc下的hosts文件,添加127.0.0.1 release.gitkraken.com api.gitkraken
2.2 修改文件权限
3.安装GitkraKen.exe
就是刚刚下载的安装包,可能时间有点长,耐心等待就好了,毕竟是国外的
安装过程就不截图了,很简单,双击,傻瓜似安装,而且你不知道安装路径的。
是打开文件位置
如这个路径:C:\Users\qs\AppData\Local\gitkraken\Update.exe –processStart “gitkraken.exe”,可以找到这个路径C:\Users\qs\AppData\Local\gitkraken
依此就可以找到实际路径了,这个在下面破解中将会用的到。上面目标中的内容,就不解析了,应该不难理解,就是每次打开都会默认去更新程序。
4. 破解GitKraKen(有能力的同学请购买正版)
这里可能会用到node,yarn,cnpm等,可以直接在网上搜一下,就是几个命令就可以安装的
4.1 下载破解项目
git clone https://github.com/5cr1pt/GitCracken.git
我这边是因为已经将git放到系统变量中了,所以直接使用Dos命令符中运行了,如果没有这样的话,可以使用GIt工具去下载下来破解工具。
下载完后,需要删除一个文件./GitCracken/GitCracken/yarn.lock,这个看不太懂的,也解释一下,就是下载位置下的相对路径,如
C:\Users\****\GitCracken/GitCracken/yarn.lock
,这里我还真不知道dos里边怎么直接删除文件,所以我是采用的进入这个文件夹中,del删除的。
这就不探究了,linux删除知道就行了,哈哈
4.2 下面一顿操作就可以了
cnpm install // 这里不知道为什么,使用yarn install会卡到最后,所以使用了淘宝这边的库 cnpm,果然国内的就是快
yarn build // 编译吧
# windows gitbash,这里可能原作者使用的是gitBash,而我使用的是cmd的原因吧,方法有点差异,但是这里下面的路径其实就是上面找到的程序安装路径
# 如:C:\Users\heshuai\AppData\Local\gitkraken\app-7.4.1\resources/app.asar
node dist/bin/gitcracken.js patcher --asar C:\Users\heshuai\AppData\Local\gitkraken\app-7.5.2\resources/app.asar
# mac
node dist/bin/gitcracken.js patcher --asar 你的gitkraken的目录/resources/app.asar
然后你可以打开GitKraKen了,看一下右下角,可以看到Pro就可以了
这里需要切换账号的话,需要重新去执行刚刚node命令
这些内容借鉴于gitKraken 7.3.2 破解,GitKraken使用—01、GitKraken的安装与破解,结合实际破解过程中的内容整理而来。
实测没有问题!!
二、基本GitKraKen使用
Open a repo:打开本地项目
Clone a repo:克隆Git仓库中的项目
start a local repo:新创建一个Git项目
红色:删除 黄色:修改 绿色:新增
HEAD
严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点,每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。
当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上。
不过,当切换到dev分支后,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针保持不变
假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并。
合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支,HEAD又指向了master
摘自 廖雪峰的官方网站,图文并茂,非常清楚
这部分内容直接摘抄的,没有进行个人总结,主要是目前对于git还停留于使用层面的应用,Git运转逻辑了解不多,目前还有不少其他的技术需要学习,Git目前掌握工作中已够用,暂时没有办法学习Git了,就暂时不深入了解了。有兴趣的朋友可以看一下廖雪峰的网站
1 关联关联到远程仓库
若是新创建本地仓库,想关联远程仓库,可以使用下面方法
点击 “REMOTE” 右侧 “+” 号,添加团队项目仓库。此时 “REMOTE” 下会多出团队远程仓库信息。
2 简易操作
一些拉取、提交代码、新建分支就不说了,很简单
3 修改 commit 信息
当一不小心手抖误写和提交了一个 commit 信息之后,可以在树状分支图中选中此 commit 记录(必须是最新一 次commit ,旧的 commit 信息不允许修改),点击右侧上方的 commit 信息进行修改,然后点击下方 “Update Message” 提交修改
4 合并多次 commit 信息
当从团队项目分支 Merge 到本地时, Git 会自动产生一条形如 “Merge remote-tracking branch ‘upstream/dev’ into dev ” 的 commit 信息,提交到团队项目上去就会有一大堆这种 merge 信息混杂在有用的 commit 记录里。这时候就可以用合并 commit 信息得以解决。
在Gitkraken中的具体操作是:在树状分支图的某个 commit 记录上右键,选择 “Reset dev to this commit” -> “Soft – keep all changes”。成功后,所有新于此条 commit 的信息都会被抹去,但文件的修改还保留着。
5 退回旧版本
在树状分支图的某个 commit 记录上右键,选择 “Reset dev to this commit” -> “Hard – discard all changes”。成功后,所有新于此条 commit 的操作都会被抹去,包括对文件的修改。然后点击上方菜单栏的 push 推到远程仓库,但由于 head 指针滞后,选择 Force 强制把远程项目更为旧版本。
6 合并分支
这个在GitKraKen中有多种方式,结果都一样
第一个,直接将另一分支拖动到当前分支即可合并
第二个,右键点击需要合并的分支,选择 Merge ** into **,就是将这个分支合并到当前分支
6.1 解决 merge 时的冲突
Gitkraken会检测出 conflict ,这时候只要选择 “View conflict file” 就可以打开冲突文件的 diff 视图,通过勾选方框选择保留冲突部分的哪个版本,确定后就可以得到最下方的 Output 示意的最终合并后的文件。
7 将某次Commit合并到当前分支
Cherry pick commit 这个命令就可以实现,可以右键点击commit记录来进行合并。
点击分支的话,也是可以执行的,但是也是将分支的最近一次commit合并到当前分支
8 暂存未提交代码
stash(贮藏)、pop(释放-将准备好的动心突然拿出来)
使用场景:
在实际开发中,解决Bug是避免不了的,每个Bug分支都是新建一个临时分支来修复的,修复完成后合并分支,删除临时分支
当在develop分支上开发新功能,代码写到一半时,突然测服报了一个bug要现在解决
功能写到一半总不能现在提交,解决Bug在新的分支上,要保持工作区和暂存区是干净的,stash就派上了用场
gitKraken上的操作:
功能开发分支(当前分支),点击上方菜单的Stash,可以看到工作区和暂存区都干干净净的,log区域会有个存储样式的图标
然后去处理Bug,Bug处理完成之后,切回到功能分支
点击pop,将储存的代码释放出来,继续开发
如果不stash的话,当前分支有未提交代码是不可以切换分支去处理其他问题的。
9 Git命令
git stash // 贮藏
git checkout master // 切换到master分支上
git checkout -b issue-001 // 新建解决Bug的临时分支并切换到这个分支
git checkout master // 切换到master分支上
git merge --no-ff -m "merge bug fix 001" issue-001 // 合并Bug分支到master分支上
git checkout develop // 切换到develop分支上
git merge --no-ff -m "merge bug fix 001" issue-001 // 合并Bug分支到develop分支上
git branch -d issue-001 // 删除Bug分支
git stash list // 查看之前在功能分支上修改贮藏在stash
git stash pop stash@{0} // 把stash内容恢复到工作区
查看本地分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建并切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
以上内容参考整理自git – gitKraken可视化工具(二),git图形化工具GitKraken的使用——分支的创建与合并,GitKraken使用教程,这几篇博客内容已经足够我使用了,以后在工作中涉及到其他内容,再整理。