Search code examples
gitgit-fetchgit-remote

git fetch with path instead of remote


I understand the idea of running git fetch <remote>, because the remote branches are then available with git checkout <remote>/<branch>.

But how does it work if I just run

git fetch path/to/other/repo

How can I checkout the corresponding branches? Note that the operation runs silently (even with --verbose), and that no new branch is created.

edit: just to be clear: I perfectly understand how git works with remotes. I'm just curious about this alternate syntax git fetch path/to/remote, or git fetch <url>. How is it supposed to work? Why does it not create new branches? Why does it run silently even in verbose mode? What is the intended usage?


Solution

  • I think the best explanation (much better than the docs) is an answer to another question by Jakub Narębski.

    Basically:

    git fetch <path>
    

    just fetches the HEAD branch of the remote, and stores it locally into FETCH_HEAD.

    git fetch <path> <branch>
    

    fetches the branch in the remote repo and stores it in FETCH_HEAD.

    More advanced usages are described in Jakub Narębski's answer, but, as he states himself, the best way to fetch is to use named remotes.