👀

「error: pathspec '~' did not match any file(s) known to git」これって何👀?

に公開

はじめに

チームで開発をしていると、

現在自分が作業をしているブランチから別のブランチに移動する、

だなんてことがよく起こります。

ブランチの移動の際は

git checkout 移動先のブランチ

こういったコマンドでチェックアウトをするかと思われます。

困ったこと、その原因...

しかし、

error: pathspec '~' did not match any file(s) known to git

このようなメッセージがコンソールに出て、チェックアウトできないことがありました。

今回、このメッセージが出現したケースは以下の通りです。

  • チームメンバーから依頼され、別のブランチにチェックアウトする必要があった
  • git checkout 移動先のブランチをしたが、上記のメッセージが出た
  • 上記コマンドのtypoはなかった
  • 移動先のブランチはリモートにはあるが、自分の手元(ローカル)にはなかった

この

移動先のブランチはリモートにはあるが、自分の手元(ローカル)にはなかった

ここがポイントでした。

手元にないのですから、上記のメッセージが出るのも頷けますね...💦

解決策

ということは、

リモートにしかない移動先のブランチがローカルにも存在していれば良さそうですね。

そこで、

git fetch

このコマンドを使い、

リモートの内容をローカルにある「リモート追跡ブランチ」と同期させてあげましょう。

こうすることで、

手元になかった移動先のブランチにチェックアウト出来るようになります。

参考

https://git-scm.com/docs/git-fetch

https://git-scm.com/book/ja/v2/Git-の基本-リモートでの作業

リモートブランチにcheckout する方法 ~git fetch をお忘れなく~

Discussion