web-dev-qa-db-ja.com

エラー:pathspec 'test-branch'は、gitが認識しているどのファイルとも一致しませんでした

私はGitの新しいユーザーです。 Spoon-Knifeというリポジトリをフォークしました(Gitでフォークを練習するために利用可能です)。次に、実行してローカルに複製しました

git clone https://github.com/rohinichoudhary/Spoon-Knife.git

このリポジトリには3つのブランチが含まれます。

  • master
  • test-branch
  • change-the-title

git branchを実行すると、*masterのみが表示され、残りの2つのブランチは表示されません。そして私が走るとき

git checkout test-branch

次のエラーが表示されます。

エラー:pathspec 'test-branch'は、gitが認識しているどのファイルとも一致しませんでした。

なぜこうなった?この問題を解決するにはどうすればよいですか?

38

git branchを実行すると、*masterのみが表示され、残りの2つのブランチは表示されません。

git branchtest_branchをリストしません。これは、ローカルリポジトリにそのようなローカルブランチがまだ存在しないためです。リポジトリのクローンを作成すると、クローン元のリモートリポジトリに存在するブランチの数に関係なく、ローカルブランチ(ここではmaster)が1つだけ作成され、結果のクローンでチェックアウトされます。この段階では、test_branchはレポに remote-trackingbranch としてのみ存在し、localブランチ。

そして私が走るとき

git checkout test-branch

次のエラーが表示されます[...]

Gitの「古い」バージョンを使用している必要があります。より新しいバージョン( v1.7.0-rc0以降 )では、

<branch>が見つからないが、一致する名前を持つ正確に1つのリモート(<remote>と呼ぶ)に追跡ブランチが存在する場合、[git checkout <branch>]を同等のものとして扱います

$ git checkout -b <branch> --track <remote>/<branch>

単に実行する

git checkout -b test_branch --track Origin/test_branch

代わりに。または、Gitの最新バージョンに更新します。

29
jub0bs

私の友人、このコード行を使用して、他の2つのブランチにチェックアウトするために、まず対応するブランチをローカルに作成する必要があります

git branch test-branch  

そして

git branch change-the-title

その後、あなただけがgit checkoutそれらのブランチに対してできるようになります

また、各ブランチを作成した後、以下のコードに示すようにgit pull Origin branch_nameを使用して、特定のブランチの最新の変更を取得します

git branch test-branch
git checkout test-branch
git pull Origin test-branch

change-the-titleという名前の他のブランチの場合、次のコードを実行=>

git branch change-the-title
git checkout change-the-title
git pull Origin change-the-title

幸せなプログラミング:)

19

最新のGitは、リモートブランチを検出し、チェックアウト時にローカルブランチを作成できるはずです。

ただし、 浅いクローン (例:--depth 1)を使用した場合は、次のコマンドを試して修正してください:

git config remote.Origin.fetch '+refs/heads/*:refs/remotes/Origin/*'
git fetch --all

もう一度ブランチをチェックアウトしてみてください。

または、クローンのシャローを解除してみてください。 git fetch --unshallowをもう一度試してください。

参照: すべてのリモートブランチを取得する方法?

18
kenorb

また、リモートブランチが最後のクローン/フェッチ後に作成され、ローカルリポジトリがまだそれを認識していない場合、gitのどのバージョンでもこのエラーが発生する可能性があります。最初にgit fetchを実行して、すべてのリモートブランチについてローカルリポジトリを「伝える」ことで解決しました。

git fetch
git checkout test-branch
14
pilkch

3つの手順に従うだけで、gitブランチの問題は解決されます。

git remote update
git fetch
git checkout --track Origin/test-branch

6
Shajid

解決:

修正するには、まずフェッチする必要があります

$ git fetch Origin

$ git rebase Origin/master

現在のブランチマスターは最新です。

$ git checkout develop

Originからのリモートブランチ開発を追跡するためのブランチ開発セットアップ。

新しいブランチ「開発」に切り替えました

1