项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2023年北航敏捷软件工程 |
这个作业的要求在哪里 | 团队项目-代码管理准备-CSDN社区 |
我在这个课程的目标是 | 实践软件开发流程 |
这个作业在哪个具体方面帮助我实现目标 | 学习代码管理 |
一、代码仓库地址
Fork主仓库的仓库地址:BUAASE2023-TeamVersionControl
删除敏感数据后新建的代码仓库地址:BUAASE2023-TeamVersionControl-CleanUp
二、需要说明的状况
本次代码管理实验,我们并没有出现严重的代码管理灾难,全程使用同一个仓库完成了实验。但是也出现了一些小的问题,在这里对问题进行记录。
- 有同学在合并 pr 的过程中,使用了 merge 方法而非 rebase 方法。
- 由于本次作业的提交规范和我们正式项目采用的略有不同,部分同学使用了正式项目的提交规范导致提交信息格式有误
- 有同学在实现任务时,选择了 fork 我们的实验仓库,从另一个仓库向实验仓库提交 pr 的方法,在处理冲突时出现了一些问题。
对于上面这些问题,我们分别使用以下办法进行解决:
- 使用 git rebase -i ,交互式的对历史提交信息进行 reword 修正,消除了 merge。
- 使用 git rebase -i ,对格式错误的提交进行了修正
- 虽然可以通过同步仓库后,再远端处理冲突的方法解决,但出于时间原因,我们选择了在实验仓库重新进行实验的办法解决
三、对于敏感数据的处理
根据这篇指引,我们选择使用 bfg 完成对历史敏感数据的追溯修改消除影响(尽可能)。
敏感数据一般是一些字段,我们设置了一个目标字段文件,命名为 target.txt ,在本次实验中内容如下:
其实,打这行的时候,
真的已经很困很困了。
使用 bfg 的 replace-text 功能,对 target 中的所有字段完成替换,实现脱敏。
脚本如下:
git clone git@github.com:Dofingert/BUAASE2023-TeamVersionControl.git
cd BUAASE2023-TeamVersionControl
git rm .\src\tofix\SUPER-SENSITIVE-DATA.txt
git commit -m "[fix](SUPER-SENSITIVE-DATA.txt): delete sensitive-data"
java -jar ..\bfg-1.14.0.jar --replace-text ..\target.txt
脚本会自动的克隆仓库,在仓库中先删除敏感文件,创建一个新的分支,最后再使用 bfg,移除历史中所有相关敏感信息的记录。
由于使用字段匹配的方式对敏感数据进行查找,那么对文件的移动是不会改变对文件脱敏的效果的。