Pulling just one directory out of a git repo

git, git-checkout, git-fetch, git-pull

Solution

`git pull` fetches and merges the remote branch.

`.gitignore` works only locally, and will hide matching entries from showing up on `git status` and being added to the index with `git add`. It's not what you want.

What you want to do, is `fetch` the remote branch, and from that, extract the dir/file you need.

$ git fetch <remote> <branch>
$ git checkout <remote>/<branch> -- relative/path/to/file/or/dir

the file/dir should now be in your branch and added to the index.

Problem

I have a git repo that I want to do a pull from. I do a normal `git pull` with no problems. The issue is that I want just one certain directory out of the repo. My thinking was that I could use a `.gitignore` file with a rule like this: ``` #Ignore all files / #Except the one I want !/temp ``` The problem is this doesn't work. Is that the right way to do it or is there a better way?

Original source

Related problems