Is there a way to fork a file from a foreign Git repository without cloning the whole repository?
            Asked
            
        
        
            Active
            
        
            Viewed 5,826 times
        
    10
            
            
        - 
                    You need to clone, but then you can strip out all you don't want. – Thilo Dec 09 '11 at 08:22
- 
                    This is very close to http://stackoverflow.com/questions/6680709/create-new-git-repo-from-already-existing-repos-subdirectory – Thilo Dec 09 '11 at 08:23
2 Answers
6
            The closest you could get to doing this is by using sparse checkout, which means using Git 1.7+ and you still need to clone the repo (or use clone's --depth option to do a shallow clone). Borrowing largely from this answer, you could do the following:
git clone --no-checkout <URL to git repo> myrepo
cd myrepo
git config core.sparseCheckout true
vim .git/info/sparse-checkout # Add files you want checked out
git checkout <branch you want>
If you have Git version 1.7.7-rc0 or later, you can set configuration options with the clone command:
git clone --config core.sparseCheckout=true --no-checkout <URL to git repo> myrepo
Also, see the following:
- 
                    thx, but somehow the first line results in "error: unknown option `config'" – Alexander Zeitler Dec 12 '11 at 11:49
- 
                    The `clone` `--config` option is available beginning with Git 1.7.7-rc0. If you have a prior version, remove the `--config core.sparseCheckout=true` and after the `git clone` command, execute `git config core.sparseCheckout true`. But you will still need a version at least 1.7.0. – Go Dan Dec 12 '11 at 13:48
-3
            
            
        Unlike Subversion, Git does not support partial checkouts.
 
    
    
        Peter Mortensen
        
- 30,738
- 21
- 105
- 131
 
    
    
        rgngl
        
- 5,353
- 3
- 30
- 34
 
     
    