GitHub Desktop 是一款免费的 git 界面工具,使用体验要好于 Sourcetree、TortoiseGit
当年,促使放弃 Sourcetree 转而使用 GitHub Desktop 有以下几点
- GitHub Desktop 是免费的,Sourcetree 是收费的,不用再支持正版和破解之间纠结了。
- GitHub Desktop 支持分支搜索
GitHub Desktop 的界面看起来简单易用,深入使用后发现人家的设计理念很贴近程序员的使用习惯,无形之中给用户减少了很多心智负担,并且很好的契合了 Github。
GitHub Desktop 程序界面
Sourcetree 程序界面
如果你是新人入职
clone 项目到本地
File=>Clone a repository=>URL
第一次可能需要输入用户名和密码
新建一个分支(切换分支)
当前分支有更改的时候,会询问
- 将更改留在当前分支
- 携带更改到新创建的分支
当你选择 "将更改留在当前分支" 时,更改会做为 "Stashed Changes" 留在当前分支
点进去就可以选择"Restore"(恢复)或者"Discard"(丢弃)
注意当分支有新的更改时是无法选择"恢复"的
当你选择 "携带更改到新创建的分支" 时,注意此时分支没有被推送到远程,存留在本地,可以当做本地分支使用
当在该分支上写完"一个功能点"时,提交代码时记得些"说明",必要的时候写一下"描述"
如果代码使用 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"撤销提交的
分支已经推送到远程的话,提交也需要手动推送到远程
当分支完成使用时,例如项目准备上线的时候,需要将代码合并到主分支,通常是需要有合并权限的人审批的,这个时候记得先从主分支上拉取代码,有冲突的话好提前解决。
多人开发代码时,冲突在所难免,及时从主分支上拉取代码是个好习惯
如果发生冲突,软件会显示冲突的文件
当选择 "Open in Visual Studio Code" 打开时
- 采用当前更改
- 采用传入的更改
- 保留双方的更改
- 比较变更
解决完冲突后,选择"Continue merge"就可以了
通常,在正式发版前还要经过测试分支,先切换分支到测试分支,选择"Merge into current branch"
多环境部署
当某一个分支长时间不用,本地代码和分支代码有较大差异,可明明什么也没改
这种情况直接删除本地分支再拉取就可以了(更新代码后可能会出现冲突)
Branch => Delete
注意,如果勾选多选框,远程分支也会被删除,这种操作非常危险,一定要谨慎操作!
查看更改
通过"History"看看其他成员都做了那些更改
默认是这样的
可以选择另一种模式
拖拽提交到其它分支
Ctrl、Shift 都和选择有关,这几乎是通用的,然后拖抓到其它分支
这个功能在多个版本同时迭代时,解决共性问题、或者一不小心将代码提交到类似"测试"这样的分支时很好用
对分支的修改、删除
注意是能直接删除远程分支的哦,出现的英文提示要仔细阅读
结语
其余的功能大家可以点看 "File"、"Edit"、"View"、"Repository"、"Branch"逐一体验下
GitHub Desktop 还是很贴心的