2017-06-02 8 views
0

私はupstreamリモートリポジトリからちょうどフェッチしたブランチをcheckoutに送ろうとしていますが、動作していないようです。git fetchは機能しますが、チェックアウトブランチは機能しません。

$ git fetch upstream 
Fetching upstream 
From github.com:group/repo 
* [new branch]  feature-branch -> upstream/feature-branch 

$ git checkout feature-branch 
error: pathspec 'feature-branch' did not match any file(s) known to git. 

私は何か間違っていますか?

答えて

6

分岐は、複数のリモートに存在する可能性があります。 (これはgit branch --list --remotes '*/feature-branch'で確認できます)git checkoutは、あいまいでない場合にのみそのようなブランチを作成します。

<branch>が見つからない場合しかし、あなたはそう

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

のと同等の扱い、一致する名前を持つ(<remote>それを呼び出す)リモート正確に一つで追跡ブランチが存在しない:git-checkout(1)から代わりにそれをする必要があります:

git checkout -b feature-branch --track upstream/feature-branch 
-1

あなたがチェックアウトするように頼むときに起こることができるいくつかの自動化があります(たとえば、いくつかのリモートブランチからそれを作成します)が、あなたのために失敗することはありません:git checkout upstream/feature-branch。唯一のことは、ローカルブランチが作成されていないことです。

1

gitに "ショートカット"チェックアウトの表記を理解させたいが、それは適用できないと思われる。おそらく、複数のリモコンにfeature_branchという名前のブランチがありますか?

まあ、とにかく、git checkout -b feature-branch -track upstream/feature-branchあなたがgit checkout feature-branchにgitを実行するとfeature-branchという名前のファイルに保存していないすべての変更を削除しよう

0

を働くべきです。 checkoutの場合は、このブランチを使用してください。git checkout -b feature-branch

関連する問題