Git clone without .git directory [duplicate]

2019-01-10 02:01发布

问题:

Possible Duplicate:
How to do a “git export” (like “svn export”)

Is there a flag to pass to git when doing a clone, say don't clone the .git directory? If not, how about a flag to delete the .git directory after the clone?

回答1:

Use

git clone --depth=1 --branch=master git://someserver/somerepo dirformynewrepo
rm -rf !$/.git
  • The depth option will make sure to copy the least bit of history possible to get that repo.
  • The branch option is optional and if not specified would get master.
  • The second line will make your directory dirformynewrepo not a Git repository any more.
  • If you're doing recursive submodule clone, the depth and branch parameter don't apply to the submodules.


回答2:

since you only want the files, you don't need to treat it as a git repo.

rsync -rlp --exclude '.git' user@host:path/to/git/repo/ .

and this only works with local path and remote ssh/rsync path, it may not work if the remote server only provides git:// or https:// access.



回答3:

You can always do

git clone git://repo.org/fossproject.git && rm -rf fossproject/.git