0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Gitトラブル解決記】pushしたら別プロジェクトの履歴が混入してきた件

Last updated at Posted at 2025-08-14

はじめに

今回、ローカル環境では正常に動作しているにも関わらず、GitHubのリモートリポジトリに不要なファイルや別プロジェクトの履歴が混入してしまうという問題に遭遇し、最終的に解決に至った経緯を記録します。

普段、AAAリポジトリ[私のprivateリポジトリ(仮称)]ではGitHub Desktopを使用していましたが、他のプロジェクトでCLI(Git)を頻繁に使うようになり、「CLI操作の方が効率的だろう」と考えてコマンドラインからpushを実行したところ、予期せぬ問題が発生しました。

試行錯誤の過程

今回のケースは、単なる「不要ファイル混入」ではなく、
同名フォルダが別プロジェクト由来の内容と混在し、ディレクトリ構造そのものが崩れている状態でした。

そのため、ローカルで不要ファイルを削除しても、pushのたびに過去履歴から混在ファイルが復活してしまいます。

そこで、以下の方法を試しました。

  • git remote remove による不要なリモート削除 → 効果なし
  • git push --force による強制上書き → 不要ファイルが残存
  • git rm --cached による追跡解除 → 解除されず
  • orphanブランチ作成後のpush → 過去履歴から不要ファイルが再出現

いずれの方法も、ローカル環境は正常であるにも関わらず、push後のリモートリポジトリは問題のある状態が継続しました。

問題の詳細

CLIでcommit・pushを実行後、GitHubリポジトリを確認すると、ローカルリポジトリとは異なる内容が表示されていました。特に、同名のディレクトリ内でファイルが混在している状況でした。

git remote -v で確認したところ、ローカルの AAA ディレクトリで以下の状態が判明しました:

origen  https://github.com/yamadataiyou/Qiita-content (fetch)
origen  https://github.com/yamadataiyou/Qiita-content (push)
origin  https://github.com/yamadataiyou/AAA111.git (fetch)
origin  https://github.com/yamadataiyou/AAA111.git (push)

問題点:

  • originorigen(入力ミス)により、異なるGitHubリポジトリが同一環境に設定されていた
  • 過去の別プロジェクト(AAA111)の履歴とファイルが現在のリポジトリに混入
  • GitHub Desktop使用時には表面化しなかったが、CLI操作により不要ファイルが大量に出現

解決方法

根本原因は.gitディレクトリ内に残存していた過去の履歴および接続情報でした。
この問題を解決するため、.gitディレクトリを完全に削除し、ローカルの現在の状態のみで再初期化を実行しました。

実行手順

rm -rf .git

git init

git remote add origin https://github.com/yamadataiyou/AAA.git

git add .

git commit -m "Initial clean commit"

git branch -M main

git push origin main --force

解決の仕組み

  • .gitディレクトリには過去の異なるプロジェクトの履歴と不要ファイルの情報が保存されていた
  • push実行時、これらの履歴も同時に送信され、不要ファイルが復活していた
  • .git削除により過去の履歴を完全に排除し、ローカルの作業ツリーのみで新しい履歴を構築
  • --force pushによりリモートを完全に上書きし、不要ファイルを除去

今後の対策

  • 既存プロジェクトのディレクトリを流用する際は、.gitディレクトリを必ず削除してからgit initを実行
  • git remote -vによる接続先の定期的な確認
  • GitHub DesktopとCLIでは内部状態の処理方法が異なるため、ツール切り替え時は特に注意
  • ローカル環境が正常でもリモートに問題がある場合、履歴の完全なリセットも選択肢として検討

まとめ

今回の事例は、ローカル環境では正常に動作しているにも関わらず、リモートリポジトリに不要な履歴やファイルが混入するという、診断が困難なトラブルでした。

同様の症状として、

  • 削除したファイルが何度でも復活する
  • .gitignore--force pushが機能しない

といった現象が発生している場合、.gitディレクトリの削除と再初期化による解決が有効です。また、リモート設定にタイポ(originorigen など)が混ざると予期せぬ挙動につながるため、git remote -v で定期的に確認すると安心です。

なお、GitHub Desktopは便利ですが、CLIと比べると表示更新にワンテンポ遅延があると感じました。今回の件をきっかけに、今後はCLI操作を中心に作業を進めていく予定です。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?