如何在git中为每个文件附加一些信息并提交?
我的用例如下所示:
我习惯于为项目中的特定文件指定"质量级别"--比如"完成"、"已检查"、"已审核"。让我们在这个问题的其余部分坚持使用"已检查"。让我们进一步假设我的项目由文件A、B和C组成。最后,让我们使用普通的两位数,递增的数字来标识提交。
在项目开始时,没有一个文件被检查。在提交03时,我认为A值得被"检查",所以我们有:
| 文件|已检查|近期|
| - ------| - ------| - ------|
| A类|03| 03|
| 乙||03|
| C级||03|
列"Checked"表示文件被选中时的提交,列"Recent"表示最近一次接触文件的提交。
工作继续提交05,现在C被选中:
| 文件|已检查|近期|
| - ------| - ------| - ------|
| A类|03|四|
| 乙||零五|
| C级|零五|零五|
(请注意,文件A已被提交04修改!)
此时,我希望得到一份关于项目当前检查状态的报告,结果如下:
! A (03 -> 04)
- B
= C
含义:
- 在A中未选中提交03与04之间的差异
- B完全未选中
- C完全检查
我检查了文件A从提交03到04的差异,发现了一些打字错误,修复了打字错误,提交了更改,并在A上将新提交06标记为"选中",结果如下图所示:
| 文件|已检查|近期|
| - ------| - ------| - ------|
| A类|零六|零六|
| 乙||零五|
| C级|零五|零五|
并在以下报告中:
= A
- B
= C
在CVS中,标签可以(ab)用来实现每个文件的质量报告,在git中,我一直在使用side-car文件来跟踪每个文件和提交的质量状态,但这感觉很笨拙,而且维护起来开销很大。
那么如何在git中以一种更自然的方式实现呢?
1条答案
按热度按时间ajsxfq5m1#
在git universe中,你可以通过分支和拉取请求来实现。
| 文件|已检查|近期|Git宇宙|
| - ------| - ------| - ------| - ------|
| A类|03|四|主题(功能)分支中的文件|
| 乙||零五|主题(功能)分支中的文件|
| C级|零五|零五|文件已合并到一个重要分支(通常称为
main
)|文件的哪个版本已经过审核并不需要明确记录,因为在合并过程中会发现差异。合并过程通常是通过Git上运行的工具(Azure DevOps,GitLab,GitHub,BitBucket等)提供的Pull Request过程完成的。
请注意,代码变更可能有多个成熟度级别。例如:x一米一纳米一x → x一米二纳米一x → x一米三纳米一x。
Git在支持不同分支策略方面非常灵活;几乎没有流行的既定分支策略,每个策略都有其优点和痛点。
由于你是git新手,你可以使用一个已经建立的工作流,而不是自己发明一个。以下是一些流行的名字: