git pullで競合したのか…とりあえず問題ファイルたちの対処

gitを中途半端に使っていると…面倒なことになる

作成日:2024-12-20, 更新日:2025-04-03

経緯

他人の環境がgitで管理していたと思ったら、実は管理されていなかった
管理しないまま使うなら問題無いけど、管理する…というから面倒なことになった

状況としては

  • gitはある。途中までは管理していた
  • いつからかgitを使わなくなった
  • 今回「git pull」をする…というコトになった

さいわいなコトに「なにもしていない」というので何も気にせず対応することに
それにしても「なにもしていない」というのはフラグだねぇ...

対応

  1. ひとまず「git pull」するもエラー。原因は競合
  2. 「なにもしていない」という言葉に従いすべてstashする
  3. 再度「git pull」するもエラー。原因は余計なファイルがあちこちにある
  4. 「なにもしていない」という言葉に従いすべて削除

余計なファイルの削除について

▼「git pull」したときのエラー

# git pull
Updating 2997041b..e0ee5616
error: The following untracked working tree files would be overwritten by merge:
        htdocs/xxx/xxx.php
        htdocs/xxx/xxx.jpg
        ...大量にある...

ローカルに余計なファイルが大量に存在するっぽい...

  1. 「git pull」して、エラーをファイル出力
  2. 出力したファイルから、削除実行

※大量にありすぎる場合は、何度も繰り返す必要あり

「git pull」して、エラーをファイル出力

▼「git pull」の結果を「files_to_remove.txt」に出力

# git pull 2>&1 | grep "would be overwritten by merge" -A 100 | grep -v "would be overwritten by merge" > files_to_remove.txt

出力したファイルから、削除実行

ファイルの中身を確認して余計なものが無いことだけ確認しておく

▼「files_to_remove.txt」から削除

cat files_to_remove.txt | xargs rm

関連項目