18128


昔は

[code]

    git checkout BRANCH_NAME
    
[/code]

だけで、fetchしたremote
branchのトラッキングブランチを自動で生成した上でそのトラッキングブランチにチェックアウトできていたと思うのですが、今では出来なくなっていて、以下のようなエラーが出ます。

[code]

    error: pathspec 'BRANCH_NAME' did not match any file(s) known to git.
    
[/code]

そのため現状では、

[code]

    git checkout -b BRANCH_NAME origin/BRANCH_NAME
    
[/code]

としているのですが、より簡単な方法があれば教えて下さい  
version2.6で`git checkout BRANCH_NAME`で問題ない方もいらっしゃる様なので、gitのバージョンの問題ではないようです。


CC BY-SA 3.0
2015-10-25T05:48:18.157
18047
2015-10-27T07:57:45.990
2015-10-27T03:51:59.657
4072
4072
question
git
fetchしたremoteブランチのトラッキングブランチがcheckout時に自動で生成されない


[Git
1.6.6](https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/1.6.6.txt)
以降現在に至るまで、 `git checkout <branch>` でトラッキングブランチを作成できます。

ただし、指定した名前のブランチが複数の remote に存在するとエラーになります。

> If <branch> is not found but there does exist a tracking branch **in exactly
> one remote** (call it <remote>) with a matching name, treat as equivalent to
[code]

>     $ git checkout -b <branch> --track <remote>/<branch>
>  
[/code]

>
> \--- <https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html>
> より引用。強調は私によるものです。

この場合のエラーメッセージは、存在しないブランチ名を指定したときと同様のものです。

[code]

    $ git branch -a
    * master
      remotes/origin/HEAD -> origin/master
      remotes/origin/some-branch
      remotes/hoge/some-branch
      remotes/hoge/some-branch
    
    $ git checkout some-branch
    error: pathspec 'some-branch' did not match any file(s) known to git.
    
[/code]


CC BY-SA 3.0
2015-10-27T07:57:45.990
18128
2015-10-27T07:57:45.990
8000
18047
answer