私は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が認識しているどのファイルとも一致しませんでした。
なぜこうなった?この問題を解決するにはどうすればよいですか?
git branch
を実行すると、*master
のみが表示され、残りの2つのブランチは表示されません。
git branch
はtest_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の最新バージョンに更新します。
私の友人、このコード行を使用して、他の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
幸せなプログラミング:)
最新のGitは、リモートブランチを検出し、チェックアウト時にローカルブランチを作成できるはずです。
ただし、 浅いクローン (例:--depth 1
)を使用した場合は、次のコマンドを試して修正してください:
git config remote.Origin.fetch '+refs/heads/*:refs/remotes/Origin/*'
git fetch --all
もう一度ブランチをチェックアウトしてみてください。
または、クローンのシャローを解除してみてください。 git fetch --unshallow
をもう一度試してください。
また、リモートブランチが最後のクローン/フェッチ後に作成され、ローカルリポジトリがまだそれを認識していない場合、gitのどのバージョンでもこのエラーが発生する可能性があります。最初にgit fetch
を実行して、すべてのリモートブランチについてローカルリポジトリを「伝える」ことで解決しました。
git fetch
git checkout test-branch
3つの手順に従うだけで、gitブランチの問題は解決されます。
git remote update
git fetch
git checkout --track Origin/test-branch
解決:
修正するには、まずフェッチする必要があります
$ git fetch Origin
$ git rebase Origin/master
現在のブランチマスターは最新です。
$ git checkout develop
Originからのリモートブランチ開発を追跡するためのブランチ開発セットアップ。
新しいブランチ「開発」に切り替えました