Git图形化工具

泄露秘密 提交于 2019-11-26 14:41:46

1. GitKranken

  • 集成GitHub等登录(有按钮可以直接把ssh key加入到GitHub上)
  • 使用ssh key登录时,可能要在Perferences->Authentication中专门重新生成Gitkraken的公私钥,因为用Git生成的公私钥有可能算法或秘钥长度不同,不符合Gitkraken的要求,会报错。然后选择使用新生成的公私钥,并在服务端导入ssh公钥。
  • 左侧分支树
    • LOCAL下面是所有本地fetch过的分支,及并不是clone时就会把所有分支搞下来
    • REMOTE下面是远程仓库所有的仓库,一般分支都在origin下面
    • 所有分支都是用同一个文件目录
    • 双击分支是切换到该分支,本地目录的文件会切换过去
    • 单击分支是高亮右侧图中该分支的最新指针点
  • 右侧分支图
    • 最左侧的标签指明了该分支最新的指针点的位置,右侧的电脑图标说明是本地分支,圆圈说明是远程分支,同时画了本地和远程分支
    • 大的有图标的点都是人的commit
    • 有的实心点都是merge的点
    • 如果之前做的是rebase,那么不会形成merge的点,会直接移动到同一条线
    • 一般来说一条竖线就是一个分支,但是如果不同分支间做过rebase,那么这些分支可能在同一条线上,只是最新的指针点不同,相当于rebase时GitKraken会帮你把俩个分支画到一条线上,也就是说两个分支有时候可以有一部分合在了一起(merge和rebase都会这样?只是合并之前保持两条多一个commit点,还是直接合并成一条线?),当其中一个又有了改动,会再次叉出来变成了两个
      • rebase后,GitKraken的分支图中会从上次两个分支的分歧点开始又合成了一条线,所谓的rebase就是重新定义基准点,也就是从上一次分歧点重新变成了一条线?
      • 还有一种情况是merge时发生了fast forward,也会移动源分支的指针到目标分支,也就变成了一条线,这个时候和rebase后再merge效果类似,但需要目标分支期间没有改动
    • 相当于每个分支都是一条线一根绳子,从最新的指针点,都可能把它们整条拎出来
    • 如果是pull request,那么一个commit上会有两个人名,一个是commit的人,一个是操作的人
    • 每次做了merge、rebase等操作后,GitKraken会调整一下分支图,虽然看起来可能不一样了,但其实只是为了美观做了整理,逻辑未变
    • 再次总结
      • 从上到下就是按时间降序排的
      • 只有某个分支还没有被删,那么即使merge或者rebase到了另一个分支,他的最上端肯定也会有一个点(可能会被其他分支的重合),并且在分支图左侧会显示分支名。如果是远程分支,那么分支名称右侧有个点图标,如果是本地分支,那么分支名称右侧会有一个电脑图标。
      • remote端的origin的分支图形及信息肯定是最新的,和服务端实时同步。只有本地的分支的图形及信息需要fetch来更新一下。
      • 只有merge会导致生成一个合并的实心点
      • 创建分支和merge会导致从一个点拉出来一个线,又在某个点合并回去,也就是会有一个分支又回来。rebase会导致最后和之前拉出来的base的分支又合成了一条线。
      • 从某个分支的最上端接口开始往下拎,沿着先可以找到所有的commit,只不过有可能之前做过rebase,因此有些段可能会和其他分支重合。
    • 第一次pull等操作时会要求输入显示的用户名,一般都是使用默认的git
    • 然后会用这个username和之前clone输入的repo的url去动态拼接pull和push的地址,**一般GitHub和GitLab的url都是username@repoaddress.git,但tfs(mercury)的比较特别是自己定义的地址如ssh://mercury.tfs.siemens.net:22/tfs/IDT/SINUMERIK%20CLOUD/_git/cloudapps.analyzemyperformance,前面多了一个ssh://,后面少了一个.git(可能是把这个.git挪到url的前面变成了/_git/),然后在GitKraken中第二次进行fetch等操作时,会使用它上次输入username后自动拼接的GitHub和GitLab风格的错误的url(如ssh://git@mercury.tfs.siemens.net:22/tfs/IDT/SINUMERIK CLOUD/_git/cloudapps.analyzemyperformance.git),即结尾有一个.git,就会导致地址错误,因此要手动直接在左侧树中的REMOTE下面的origin中edit origin,设置pull和push的url为git@mercury.tfs.siemens.net:22/tfs/IDT/SINUMERIK CLOUD/_git/cloudapps.analyzemyperformance这样,才能避免GitKraken自动生成错误的url**

2. TortoiseGit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!