😊

GitHub Actions上でrefusing to merge unrelated historiesエラーが発生する場合の解決策。

に公開

概要

GitHub Actions 上で、マージを実行するとrefusing to merge unrelated historiesエラーが発生しました。
このエラーは、ローカルでは再現せず、ローカル環境では問題なくマージできました。
orphanブランチも存在せず、原因の特定に苦したため、解決策を記載しておきます。

解決策

シャロークローンを禁止します。  
具体的には、actions/checkout@v3内でfetch-depth: 0を指定します。

*.yml
- name: Checkout repository
  uses: actions/checkout@v3
  with:
    fetch-depth: 0

デフォルトでは、fetch-depth: 1が指定されています。

# Number of commits to fetch. 0 indicates all history for all branches and tags.
# Default: 1
fetch-depth: ''

github.com/actions/checkoutより引用。

冗長になりますが、以下のコマンドで強制的にシャロークローンを解除できます。

git fetch --unshallow

エラーの原因

通常はorphanブランチのような、異なる履歴を持つブランチをマージしようとすると発生します。
ただ今回はシャロークローンで、正しくリモートリポジトリの履歴を取得できていなかったため、エラーが発生しました。

Discussion