2

私は次の設定をしています:

  • 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 で自動マージしたいと考えています。私は何かを誤解していますか、それとも私のアプローチが間違っていますか?

4

1 に答える 1