我不时为我们的客户进行软件升级(Atlassian 软件、jira、confluence 等)。我每次遇到的一个问题是客户可能已经对安装的版本进行了一些自定义(配置更改、更改的 Web 模板等),应该处理(保留或忽略)。我不确切知道哪些文件发生了变化,我需要确保不会错过任何内容。到目前为止,我的解决方案是提取已安装版本的 install tar.gz 并使用 rsync(使用 --verbose --dry-run --itemize-changes)来识别发生了什么变化。然后我做了一些 grep 和 sed 魔术来过滤掉有趣的部分,并“手动”应用检测到的更改。
所以基本上我有三个目录;A(旧版本有变化)、B(旧版本干净)和 C(新版本)。我喜欢识别 i A 与 B 相比的变化,并有选择地将它们应用于 C。
现在,我可以在这个过程中使用 git 来帮助我吗?我特别不喜欢手动应用更改部分。我对 git 很陌生,有人能指出我正确的方向或告诉我为什么这是一个糟糕的主意吗?