1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「fatal: Need to specify how to reconcile divergent branches.」と出た際に行ったこと👀

Posted at

はじめに

ローカル環境でコミットして、それをリモートにpushした際に

fatal: Need to specify how to reconcile divergent branches.


このエラーに遭遇したので、今回はその解決までの道のりについて

記事にしてみようと思います。

調査

まずは上記エラー文で検索を行い、以下の記事を参考に解消を試みました。


こちらの記事に基づくと

gitのconfigを調整することによって解消されるみたいでした👀

gitのconfigについては以下を参照していただければと思います。

エラー文が出た背景の振り返り

ただconfigをいじらなければいけない程の作業をした覚えはなく、

何か別の策はないかと考えていました🤔

そこで当時の作業を振り返ってみたところ...

  • リモートにしかないコミットがあった(ローカルにはpullしていない)
  • その状態でローカルでコミットを行いpushした
  • すると上記エラーが出た...

こうなっていました。

ここで重要なのは...

リモートにしかないコミットがあった(ローカルにはpullしていない)

これでした。

確かに、この状況だと上記のエラー文が出そうですね😅

解決策

そこで以下のように作業をいたしました。

以下の作業にはローカルブランチの削除が含まれますので、
コミットしたい内容はgit reset 各種のオプションでバックアップを
取っておく必要があります。
その方法については以下の記事を参考にしていただければと思います。
https://zenn.dev/takeda_kaho/articles/b1edbd33e91865

手順1(任意):コミットしたい内容のバックアップをとる

後続の手順でローカルブランチの削除を行いますので、

必要なコミットについては事前にバックアップを取っておくことを推奨いたします。

ただ不要な方もいらっしゃるかと思われますので、

その際はこの手順はスキップしていただければと思います。

バックアップにはgit reset 各種のオプションを用いますので、

以下の記事を参考に進めていただければと思います。


上記の記事で紹介されているコマンドの内、必要なコマンドを実行して、

コミットとして残しておきたい内容を特定して、

コピペなどでバックアップを取っておきます。

手順2:ローカルブランチの削除

ローカル環境を綺麗にするために、一旦ローカルブランチの削除を行います。

ローカルブランチの削除には

git branch -d 削除したいローカルブランチ
or
git branch -D 削除したいローカルブランチ

こちらを使います。

上記コマンドの違いについては以下を参照していただければと思います。

手順3:git fetchによる同期

リモートブランチをローカル環境に落として同期させるために

git fetch

こちらを使います。

手順4:削除したブランチにチェックアウト

「リモートにしかないコミットがあった(ローカルにはpullしていない)」

という問題が解消された状態になったので、

ここで削除したブランチにチェックアウトします。

git checkout 削除したブランチ

手順5:ローカル環境でコミットを行う

手順4までで問題は解消されたので、

最後は同期したローカル環境でコミットしたい内容を作り、

それをリモートにpushして終了です🙌

まとめ

表題のエラーで手間と取ってしまったので、

リモート環境でのコミットは極力避けたいですね😅

仮にそれをするとしても、チーム内での報連相は必要でしょうね💦

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?