JP / EN

広告

"Git Pull is Not Possible, Unmerged Files"が出てpullできないときはfetch&reset


タグ:linux

Gitでバージョン管理しているプロジェクトにてpullしようとしたとき
  $ git pull origin master
  error: Pulling is not possible because you have unmerged files.

なるエラーが出てできないことがある。 これは手元に解消されていないコンフリクトがある ときにpullしようとすると起こるエラーだ。
もちろん手元のコンフリクトを直せばpullできるが、 そうではなく「手元の変更を捨ててリモートブランチの状態から作業を再開したい」 ときにやり方がややこしいが
$ git fetch origin
$ git reset --hard origin/master  #ブランチ名がmasterでないときは変える

とすればよい。
ただし未pushの変更はこのやり方だと消えるので必要なら退避させる必要がある。
「なんか手元のリポジトリがおかしくなった、リモートは合っている」というような状態になったときは これを使うとよい。

コンフリクトを直したいときはどうするのか

手元もリポジトリに消すには惜しい有効な変更があるときは、上のやり方ではなく いったんコンフリクトを解決してマージする必要がある。 流れとしては
  • コンフリクトしているファイルをgit statusで確認
  • ">>>>>>"や"<<<<<<<"で示されたコンフリクトを修正
  • 修正をadd & commit
とすればよい。

おすすめ記事

パスワードをログやファイルに残さないように設定する

コマンドでファイルやディレクトリ数を数える:ls + grep + wcで条件を指定



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

https://wonderhorn.net/