私は時々、お客様のためにソフトウェアのアップグレード (Atlassian ソフトウェア、jira、confluence など) を行っています。私が毎回遭遇する問題は、顧客がインストールされたバージョンに何らかのカスタマイズ (構成の変更、Web テンプレートの変更など) を行った可能性があり、それを処理 (保持または無視) する必要があるということです。どのファイルがどこで変更されたのか正確にはわかりません。何も見逃さないようにする必要があります。これまでの私の解決策は、インストールされたバージョンのインストール tar.gz を抽出し、rsync (--verbose --dry-run --itemize-changes を使用) を使用して変更内容を特定することでした。次に、grep および sed マジックを実行して興味深い部分を除外し、検出された変更を「手動で」適用します。
つまり、基本的に 3 つのディレクトリがあります。A (変更のある旧バージョン)、B (旧バージョン-クリーン)、および C (新バージョン)。B と比較して i A の変更を特定し、必要に応じてそれらを C に適用するのが好きです。
さて、このプロセスを支援するために git を使用できますか? 私は特に変更部分を手動で適用するのが好きではありません。私はgitにかなり慣れていません。誰かが私を正しい方向に向けたり、なぜこれがひどい考えなのか教えてもらえますか?