🌲

mainブランチから作業ブランチへ移動しようとした時のエラーについて

に公開

開発環境

  • macOS
  • VSCode

行いたいこと

  • mainブランチから作業ブランチへ切り替えようとした際、未追跡のファイルが存在していたため、それらのファイルが上書きされる可能性があるという警告が表示された。原因解明から解消までの流れを記載する。
  • 内容はGitリポジトリのルートが正しく設定されていないために発生したエラーの解消。


起こっているエラー

  • 以下のようにgit switch ブランチで、mainブランチから他のブランチへ切り替えを試みた結果、untracked filesというエラーが表示された。
  • untracked filesは、Gitが追跡していないファイルが存在し、操作によってそれらが上書きされる可能性がある場合に表示される警告メッセージです。
  • 今回は、複数の.dockerファイルが未追跡のため、それらのファイルが上書きされてしまうことを警告するuntracked filesのエラーが表示された。
ターミナル
macbook@MacBook-Air Laravel_app % git switch Task-list
error: The following untracked working tree files would be overwritten by checkout:
        .docker/buildx/.lock
        .docker/buildx/current
        .docker/cli-plugins/docker-buildx
        .docker/cli-plugins/docker-compose

     〜 省略 〜

        .docker/daemon.json

Please move or remove them before you switch branches.
Aborting
  • git statusで未追跡ファイルを確認する。
ターミナル
macbook@MacBook-Air Laravel_app % git status                          
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        ../.docker/
        ../.lesshst
        ../.npm/
        ../.ssh/

        〜 省略 〜

        ../Public/

nothing added to commit but untracked files present (use "git add" to track)


エラーの原因について

  • そもそも、エラーで表示されている未追跡の.dockerファイルは、現在いるLaravel_appのディレクトリには存在しないので、Gitリポジトリのルートが正しく設定されていないと考えられた。
  • 自分のいるディレクトリはどこのリポジトリの中なのか? また、そのリポジトリの一番上のフォルダはどこか? を以下のコマンドで確認する。
ターミナル
macbook@MacBook-Air Laravel_Task_app % git rev-parse --show-toplevel

/Users/macbook
  • /Users/macbookは、ホームディレクトリGitリポジトリのルートとして設定されていたことを意味する。
  • ホームディレクトリにGitリポジトリがあるとき、git switch を実行すると、リポジトリ全体(ホームディレクトリ全体)に変更が適用される。
  • 今回の場合Gitリポジトリのルートは以下のようにする必要がある。
/Users/macbook/Laravel_Task_app



Gitリポジトリのルートの再設定の手順

  • 以下のコマンドでホームディレクトリの.gitを削除し全体のGit管理を解除する
rm -rf ~/.git
  • 今いるディレクトリをGitリポジトリにする。(Gitの初期化)
ターミナル
macbook@MacBook-Air Laravel_Task_app % git init
Initialized empty Git repository in /Users/macbook/Laravel_Task_app/.git/
  • 改めてGitの確認コマンドでGitリポジトリのルートを確認する。
ターミナル
macbook@MacBook-Air Laravel_Task_app % git rev-parse --show-toplevel

/Users/macbook/Laravel_Task_app
  • 正しいGitリポジトリのルートを設定したあとは、問題なくブランチの切り替えをすることが出来た。




以上で設定は終了です。






GitHubで編集を提案

Discussion