1. ホーム
  2. ギット

Git の使用法 (pathspec master は git が知っているどのファイルにもマッチしませんでした)

2022-03-02 05:29:27
<パス

I 問題の概要

今日、ある問題に取り組んでいます。長い間、ローカルの git リポジトリを使用していて、そこには develop ブランチしかありません。

git checkout master

以下のエラーが発生しました。

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

II 問題解決

1. まず、分岐の状況を見てみましょう。

git branch -a
* develop
  remotes/composer/develop
  remotes/composer/feature/194
  remotes/composer/feature/198
  remotes/composer/feature/199
  remotes/composer/feature/200
  remotes/composer/master
  remotes/origin/HEAD -> origin/develop
  remotes/origin/develop
  remotes/origin/feature/194
  remotes/origin/feature/198
  remotes/origin/feature/199
  remotes/origin/feature/200
  remotes/origin/master

git fetch

2. 目的の枝がない場合は、まずすべての枝を取得します。

git checkout origin/master

3. リモートマスターブランチに切り替えます。

Note: checking out 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again:

  git checkout -b new_branch_name

HEAD is now at 4beea49... Merge branch 'develop' into 'master'

プロンプトは次のようになります。

* (detached from origin/master)
  develop

git branchを実行すると、このようになります。

git checkout -b master

5. これで、現在のデタッチドブランチから切り替えて新しいブランチを作成することができます。これは、現在のデタッチドブランチから新しいブランチを作成すると解釈できます (この場合、新しいブランチは残りの準備のために master と呼ばれることになります)。

There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> master



5. この時点でgit pullを使用すると、以下のようなエラーが発生します。

git branch -u origin/master master

これは、新しく作成した master ブランチがまだリモートの master ブランチと追跡関係を結んでいないことを意味します (master ブランチを作成したように見えますが、git はリモート master との関係を考慮していません)。もちろん、上記のヒントのように git pull でリモートブランチとローカルブランチを指定して更新することはできますが ここでは、ヒントの二番目の方法で、ローカルブランチとリモートブランチの間に追跡関係を確立してみます。

Already up-to-date.

6. この時点で git pull を実行し、どのようなフィードバックが得られるかを確認します。

man git
man git branch

and so forth!

まとめると、gitは実はとても使い勝手がよく、ヒントを恐れることなく、むしろ問題解決の糸口を見つけ、時々活用することが大切なのです。

man git
man git branch

and so forth!

バイバイ