GitHub学习记录9

Git团队协作以及合并时的diff工具

在许多的多人组队(编程)任务、尤其是需要进行交叉修改代码中部分段落的时候,Git这样一个分布式版本控制系统的优势就体现出来,或许这也是一些人开始接触和使用Git的原因。

代码(提交)推送到远程仓库的一般方式

粗放式的提交:加入仓库协作者,即可获得直接push的权限(优点:更方便&快捷)

以Github为例,首先,仓库管理员(一般是仓库的创建者或者拥有者)先在Github上仓库的Settings页面中点击下图的Add People按钮,添加合作者:

约定大致的Commit Message(提交信息)的格式,有fix,update,merge等词语放在提交消息的开头,来大致表示这次提交的大致内容。

标准式的提交与合并:运用Pull Requests(优点:更严谨&利于把控每个版本的质量。例如Forking 工作流)

(Pull Requests的基本介绍可以参阅第八章的Pull Requests和提交PR词条。)

更具体一些来说,使用的是Forking 工作流,也就是先把仓库Fork到个人账号,(为了避免误操作影响主分支,往往还需设置禁用向主仓库直接push,也就是禁用前一节所述的粗放式提交),然后再用PR请求的方式将fork的修改提交给仓库管理员审核,审核通过之后再合并入主分支;可以参考atlassian文档

此外,这类比较正式的工作流也往往需要更加严谨的提交信息格式,例如本项目提交信息采用如下格式: 提交信息使用如下格式:<type>: <short summary>

1
2
3
4
5
<type>: <short summary>
│ │
│ └─⫸ Summary in present tense. Not capitalized. No period at the end.
│
└─⫸ Commit Type: lecture{#NO}|others

others包括非课程相关的改动,如本README.md中的变动,.gitignore的调整等。

实际上一些更大型的项目或者企业,可能会涉及到统筹配置多个仓库及其参与者的权限,因此会用到Projects以及Organization等功能。