Git: Checkout only files without repository?
i'd like to just checkout the files without the .git files and the whole repository. It's because i'd like to manage a website (php & html) with git and i'm looking for an easy way to update the files in the htdocs folder from the repository, without having the repository public. (now it's in the home-dir and is accessed via ssh, but i have to put the new files to htdocs manually.
The git-archive manpage contains the following example:
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
Create a tar archive that contains the contents of the latest commit on the current branch, and extract it in the '/var/tmp/junk' directory.
Or you can use low level git-checkout-index, which manpage contains the following example:
Using git checkout-index to "export an entire tree"
The prefix ability basically makes it trivial to use ' git checkout-index
' as an "export as tree" function. Just read the desired tree into the index, and do
$ git checkout-index --prefix=git-export-dir/ -a
git checkout-index
will "export" the index into the specified directory.
The final "/" is important. The exported name is literally just prefixed with the specified string.
Or you can try to use --work-tree
option to git wrapper, or GIT_WORK_TREE environment variable, eg by using " git --work-tree=/somwehere/else checkout -- .
".
Git is much easier than Subversion for this, as the whole repository is held in a single directory. You only need to delete the hidden ".git" folder in the root of the project to create a production-ready copy of your site.
In Linux/OSX this would be:
mkdir dist && cd dist
git checkout http://path/to/your/project.git
rm -rf .git
git clone --depth 1
does exactly what you want. I have a git repository with 41,000 commits and this is vastly faster. See this answer or this more general response for a more detailed explanation.
If you want to specify the branch to use (instead of the default "master" branch) use this syntax (requires Git 1.9+):
git clone -b <remoteBranch> --single-branch --depth 1 ssh://username@servername.net:serverport/PathToProject <FolderName>
链接地址: http://www.djcxy.com/p/26274.html
下一篇: Git:仅检出没有存储库的文件?