前言
上一篇介绍了 VScode 内置使用 git 的功能
也提到了内置功能的不足,因此可以使用一个很强大的 VScode 插件 GitLens 来补充缺失的功能。
加上 GitLens 的支持基本让 VScode 实现了全功能的 git 客户端了。
GitLens 插件
插件安装也非常简单,搜索插件 git 第一个就是 GitLens
安装完成之后侧边的工具栏会多出一个 git 分支图标,点击就可以查看更详细的信息了。
文件更新显示
使用 Gitlens 之后侧边会有颜色块告诉你代码的更新情况
- 红色箭头表示删除
- 蓝色块表示修改
- 绿色块表示增添
点击颜色块也可以看到修改前和修改的变化。
也可以打开右上角的图标查看代码更新的信息。
甚至可以查看具体的每一行代码是什么人上传贡献的。
回退
在 Gitlens 的左侧视图可以看到很详细的仓库信息。
第一个分割查看仓库的所有变化
第二个分割查看当前打开文件的变化
第三个分割查看当前打开文件每一行的变化
第四个分割则可以比较不同的分支标签的文件区别
第五个分割则可以更具不同参考快速搜索每一次 commits
我比较常用的是第一个分割的 回退 功能。
可以找到特定的 commit 然后右键 switch 回到之前的开发代码上。
可以在分支的地方会到 master 分支下。
一些使用细节大家可以自己摸索,其实工具都很浅显了。
代码冲突
通常多人合作同时修改了同一个文件的时候就会产生代码冲突。
也就是这一部分的代码不知道采用谁的。
由于 git 的设置, push 之前必须要 pull 到最新的文件。
而 pull 的文件极有可能会和自己尚未上传的 commit 产生冲突,这个时候 git 也会在文件做修改来告诉你。
我自己开发的时候由于 公司 和 家 分开开发,因此也会遇到类似的情况。
VScode 内置的 git 会告诉你有冲突的文件,然后通过 Gitlens 可以快速调整冲突。
VScode 内置的 git 会告诉你有冲突的文件,然后通过 Gitlens 可以快速调整冲突。
Gitlens 提供了四个按钮来快速清理 git 插入的分隔符,调整代码重提非常方便。
而且右侧有的滚动条添加了冲突高亮,如果文件很大很复杂的时候寻找冲突也比较方便。
以上就是 Gitlens 中我比较常用的功能,还有搜索功能之类的也非常好用的,只不过我用得少。
.gitignore 文件
另外补充 .gitignore 文件的使用。
通常我们的仓库会有很多文件,但是并不是所有的文件到想要添加到追踪里面去。
这个时候就可以通过 .gitignore 来过滤不需要追踪的文件,比如时候 build 代码编译文件夹 .vscode 编辑器设置文件夹 还有 python 烦人的 pyc 文件。
都可以通过 .gitignore 文件来进行过滤追踪。
VScode 可以直接创建一个.gitignore
文件,但是 windows 下不可行,因为 . 后缀会认定为后缀名,因此 windows 下需要.gitignore.
输入这样才可以创建成功
具体 .gitignore 怎么配置推荐廖雪峰大神的文章
github 功能补充
github 其实本身还提供了特别多很好的功能,大家也可以用起来。
Issue
Issue 类似于论坛,用来给开发者提意见或者 Bug 提交的。
一些成熟的项目会有很多 Iseue, Issue 如果是 opened 状态说明还没有解决。
如果 Issue 是 closed 的状态说明是已经解决的问题。
有时候 Issue 的答案比 Stack Overflow 还管用,大家搜索的时候也不要忽视这里,特别是一些小众的开源项目。
另外 Issue 遵循 Github 发布的 API ,有些有意思的项目都快把 Github 的 Issue 功能玩坏了。
比如典型的 gittalk 通过 Issue 来实现评论的数据记录,白嫖 Github 的服务器。
Pull request
上一篇博客提到,社区是没有权限直接将代码合并到仓库中的,但是可以通过 pull request 来做贡献。
首先需要先 Fork 仓库到自己的仓库上,然后修改完之后,将fork的仓库上传 pull 到开源项目中。
至于代码是否合并就要看开源项目维护者的意愿了。
Projects
提供了非常便捷的看板视图,方便做代码迭代和敏捷开发。
wiki
wiki 则是仓库的说明文档。
不过 github 的 wiki 完全基于 md 编写比较简单,很多复杂项目都是用文档生成工具来自动构建 wiki 的。
Release
Release 界面通常包含一些需要编译发行的版本。
特别是一些 c 和 C++ 的项目,编译一次需要很长的时间,通常仓库所有者会将编译好的版本打包压缩放到 Release 上供大家使用。
git 服务器环境 | git 钩子
关于 git 在服务器上构建仓库以及 git 钩子的构建 参考之前写的文章
git 钩子可以在 git 的特定流程中执行 钩子 设定的脚本 , 比如 post-receive 可以再 push 之后出发特定脚本,具体参考上面的文章。
在自己的服务器上搭建 git 使用 git 的钩子会更加自由一些, github 这些服务出于安全考虑 只有 网络钩子。
总结
以上就是 git 配合 VScode 的使用流程。
后续还会录制一个视频详细讲解这其中的一些细节,希望大家赏脸,三连支持一下~