Gitのpush -fがreject されたので、denyNonFastForwardsをfalseにした

シェアする

  • このエントリーをはてなブックマークに追加

Gitでfilter-branchを使って歴史の書換えを行った後で、push -fしてみるとエラーでrejectされてしまいました。

-fオプションはForce(強制)のはずなのでなんでなんだろう?

スポンサードリンク

git push -f でnon-fast-forwardエラー

git pushすると以下のエラーが出ました。

やむを得ず、git push -f を試みます。

やはりエラーです。

うーん。

スポンサードリンク

denyNonFastForwardsをtrueからfalseへ変更

リポジトリの/aaa/bbb/repo.git/configを調べてみると以下のようになっていました。

denyNonFastForwards = true
にすると、non-fast-forwardsなコミットは拒否されます。

git init --bare --shared
でリポジトリを作成するとこのような設定になるようです。

今回は、リポジトリのconfigの中身を
denyNonFastForwards = false
に修正しました。

ちなみに、コマンドからは以下のようにします。

スポンサードリンク

まとめ

  • denyNonFastForwards = true
    filter-branchで歴史の書換えが出来なくなる。
  • denyNonFastForwards = false
    filter-branchで歴史の書き換えを行える。

運用方法としては都合の良いほうを使えばよいと思います。

最後まで読んでいただきありがとうござました。
この記事が気に入っていただけたらシェアしてくれると嬉しいです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です