私は次の設定をしています:
- Keep a Changelog ( https://keepachangelog.com/ )を使用しています。
- GitHub で Git を使用しています
- Gitflow ワークフローに従います
前提条件: 変更ログは、develop ブランチの CHANGELOG.md という名前のファイルに保存されます。これは、次のようになります。
## [Unreleased]
- Feature2
## [1.0.0]
- Feature1
その機能ブランチを作成するよりも。機能ブランチでは、新しい機能 3 が変更ログに追加されました。
## [Unreleased]
- Feature2
- Feature3
## [1.0.0]
- Feature1
その後、開発ブランチからリリースが作成され、マージされて、次のようになります。
## [Unreleased]
## [1.1.0]
- Feature2
## [1.0.0]
- Feature1
開発ブランチを機能ブランチにマージすると、CHANGELOG.md ファイルが自動的に (競合なしで) マージされ、次のようになります。
## [Unreleased]
## [1.1.0]
- Feature2
- Feature3
## [1.0.0]
- Feature1
問題: 自動マージにより、Feature3 が間違った場所 (Unreleased ではなく 1.1.0 の下) に配置されます。これを防ぐために、解決策は 1 つしか見つかりませんでした。このファイルを .gitattributes でバイナリとしてマークすることです (常に競合を発生させるため)。ただし、.gitattributes は GitHub によって評価されません。
質問: 変更ログを保管してください。Git と GitHub は最先端のようです。なぜ誰も同じ問題を抱えていないのですか?少なくとも、それに関する質問や解決策は見つかりませんでした。
私をさらに混乱させているのは、多くの人が私の問題の反対を求めていることです. 競合が発生し、merge=union で自動マージしたいと考えています。私は何かを誤解していますか、それとも私のアプローチが間違っていますか?