最好用的Git界面工具-GitHub Desktop

5,405 阅读3分钟

GitHub Desktop 是一款免费的 git 界面工具,使用体验要好于 Sourcetree、TortoiseGit

当年,促使放弃 Sourcetree 转而使用 GitHub Desktop 有以下几点

  • GitHub Desktop 是免费的,Sourcetree 是收费的,不用再支持正版和破解之间纠结了。
  • GitHub Desktop 支持分支搜索

GitHub Desktop 的界面看起来简单易用,深入使用后发现人家的设计理念很贴近程序员的使用习惯,无形之中给用户减少了很多心智负担,并且很好的契合了 Github。

GitHub Desktop 程序界面

GithubGesktop-interfce-preview.png

Sourcetree 程序界面

sourcetree-interface-preview.png

如果你是新人入职

clone 项目到本地

File=>Clone a repository=>URL

clone-repository.png

第一次可能需要输入用户名和密码

新建一个分支(切换分支)

new-branch.png 当前分支有更改的时候,会询问

  • 将更改留在当前分支
  • 携带更改到新创建的分支

current-branch-file-change.png

当你选择 "将更改留在当前分支" 时,更改会做为 "Stashed Changes" 留在当前分支

exists-stashed-change.png

点进去就可以选择"Restore"(恢复)或者"Discard"(丢弃)

注意当分支有新的更改时是无法选择"恢复"的

option-stashed-changes.png

当你选择 "携带更改到新创建的分支" 时,注意此时分支没有被推送到远程,存留在本地,可以当做本地分支使用

push-branch.png

当在该分支上写完"一个功能点"时,提交代码时记得些"说明",必要的时候写一下"描述"

submit-code.png

如果代码使用 husky,可能会遇到以下错误

 husky > pre-commit (node v12.14.0)
/c/[my_project_path_here]/ClientApp/node_modules/.bin/pretty-quick: line 5: cygpath: command not found
internal/modules/cjs/loader.js:800
    throw err;
    ^

Error: Cannot find module '...'
     ...
}
husky > pre-commit hook failed (add --no-verify to bypass)

然而使用 VS code 的 git 插件就没有问题,那可能是路径引起的 需要找到 husky 的配置,之前

{
  "hooks": {
    "pre-commit": "lint-staged",
    "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
  }
}

用 npx 的方式解决路径问题

{
  "hooks": {
    "pre-commit": "npx lint-staged",
    "commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS"
  }
}

是可以"undo"撤销提交的

undo-commit.png

分支已经推送到远程的话,提交也需要手动推送到远程

publish-submit.png

当分支完成使用时,例如项目准备上线的时候,需要将代码合并到主分支,通常是需要有合并权限的人审批的,这个时候记得先从主分支上拉取代码,有冲突的话好提前解决。

多人开发代码时,冲突在所难免,及时从主分支上拉取代码是个好习惯

update-code-from-main.png

如果发生冲突,软件会显示冲突的文件

exists-conflict.png

当选择 "Open in Visual Studio Code" 打开时

resolve-conflict.png

  • 采用当前更改
  • 采用传入的更改
  • 保留双方的更改
  • 比较变更

解决完冲突后,选择"Continue merge"就可以了

通常,在正式发版前还要经过测试分支,先切换分支到测试分支,选择"Merge into current branch"

merger-in-current-branch.png

多环境部署

当某一个分支长时间不用,本地代码和分支代码有较大差异,可明明什么也没改

many-env-deploy.png

这种情况直接删除本地分支再拉取就可以了(更新代码后可能会出现冲突)

Branch => Delete

delete-branch.png 注意,如果勾选多选框,远程分支也会被删除,这种操作非常危险,一定要谨慎操作!

查看更改

通过"History"看看其他成员都做了那些更改

默认是这样的

default-history-effect.png

可以选择另一种模式

change-view-history-mode.png

split-history-effect.png

拖拽提交到其它分支

Ctrl、Shift 都和选择有关,这几乎是通用的,然后拖抓到其它分支

这个功能在多个版本同时迭代时,解决共性问题、或者一不小心将代码提交到类似"测试"这样的分支时很好用

drag-commit-other-branch.png

对分支的修改、删除

注意是能直接删除远程分支的哦,出现的英文提示要仔细阅读

del-rename-branch.png

结语

其余的功能大家可以点看 "File"、"Edit"、"View"、"Repository"、"Branch"逐一体验下

GitHub Desktop 还是很贴心的