I\'m trying to test something on a wordpress install. In doing so, I\'d like to quickly replicate the repo. However, the upload directory (wp-content/uploads
) i
On the server:
git checkout master^0 # the ^0 checks out the commit itself, not the branch
git filter-branch --tree-filter 'git rm -r wp-content/uploads' HEAD
git checkout -b filtered
(filter-branch on a big project here generates new history at about 2-3 commits per second)
Then, anywhere you like,
git init
git remote add gimme your://repo/path
git fetch gimme filtered
edit: fixed syntax errors according to http://git-scm.com/docs/git-filter-branch
A bit late to the party, but: Don't you want a sparse checkout?
mkdir <repo> && cd <repo>
git init
git remote add –f <name> <url>
Enable sparse-checkout:
git config core.sparsecheckout true
Configure sparse-checkout by listing your desired sub-trees in .git/info/sparse-checkout:
echo some/dir/ >> .git/info/sparse-checkout
echo another/sub/tree >> .git/info/sparse-checkout
Checkout from the remote:
git pull <remote> <branch>
See http://jasonkarns.com/blog/subdirectory-checkouts-with-git-sparse-checkout/ for more info.
you can specify the depth to clone (--depth=1
to get only 1 commit). You may want to set up a branch with this directory missing and then clone with depth of one only. Since git is snapshot based, it's not easy to exclude a part of a commit when cloning. This is the closest to what you want.
If you have full control of this repo, you may want to make a submodule of this directory and only do a submodule update when you want to admin that part.
git clone
will always clone the complete repository*, including all previous commits ever added to the repository. So even if you remove the files temporarily, and clone it then, you will still receive the older versions which do contain those files.
Also, just editing the .gitignore
will not remove tracked files from the repository even if they would normally be ignored.
So no, it is not really possible to skip a certain folder during cloning.
*It is possible to limit the amount of commits retrieved during a clone, but this will not make the repository very usable.