克隆GitHub存储库的内容(不包含文件夹本身)


232

我想要git clone我在GitHub上的存储库的内容。当我git clone(git @ github:me / name.git ...)时,我得到一个名为的文件夹name/,里面的名称包含我的内容...如何获取内容?



要真正跳过下载不需要的对象,以节省网络资源:stackoverflow.com/questions/600079/...
西罗桑蒂利郝海东冠状病六四事件法轮功

Answers:


313

如果当前目录为空,则可以执行以下操作:

git clone git@github:me/name.git .

(请注意.末尾以指定当前目录。)当然,这还将.git在您的当前文件夹中创建目录,而不仅仅是您项目中的源代码。

该可选[directory]参数记录在git clone手册页中,该手册指出,仅当该目录为空时才允许克隆到现有目录。


2
不幸的是,如果同一目录中已经存在其他不相关的目录,则此方法将无效。寻找解决方案。错误消息是:“致命:目标路径'。已经存在...”
约翰·利特尔

12
git clones进入的目录必须为空
jolyonruss

1
@HumaunRashid添加一个.答案中讨论的内容git clone https://github.com/humaun21/Test .。是的,git@github.me/name.git无论您的实际git repo地址是什么,它都是一个占位符。
亚伦·坎贝尔

1
@JohnLittle遇到相同的问题,原来有一个隐藏的.DS_Store文件,该文件隐藏在那里。简而言之rm .DS_Store,您一切顺利。
Selrond

1
如果您使用的是Linux OS,则需要确保该目录为空,包括检查隐藏文件和子目录。您可以使用ls -a做到这一点。您应该只有。和..作为输出。否则将无法正常工作
Ayo Makanjuola

156

不幸的是,如果同一目录中已经存在其他不相关的目录,则此操作将无效。寻找解决方案。错误消息是:“致命:目标路径'。已经存在...”。

在这种情况下,解决方案是:

git init
git remote add origin git@github.com:me/name.git
git pull origin master

即使您要检入的目录中有其他目录,此配方也有效。


嘿,我得到一个错误,例如“权限被拒绝<public key>”。远端意外挂断。
Stan 2014年

它不应该在github.com那之后git remote ...出现github吗?
2015年

5
这个答案应该已经被接受了。完美地工作。
vikramvi

我在这里的其他地方读到,您需要在git fetch --all之前运行git pull origin master,因为如果存储库上还有其他分支,git pull那么除非您fetch先使用,否则不会得到那些。这样对吗?
亚历克斯G

38

如果文件夹不为空,则@JohnLittle答案的略微修改版本对我有用:

git init
git remote add origin https://github.com/me/name.git
git pull origin master

正如@ peter-cordes所指出的,唯一的区别是使用https协议而不是git,为此您需要配置SSH密钥


您正在运行什么版本的git?这对我不起作用。它仍然不允许我进行设置,因为目录不是空的
guribe94

@ guribe94 Git版本2.5.0
托马什Zemanovič

3
这是相同的答案,只是在ssh上使用匿名https而不是git-protocol(需要设置ssh密钥对的github帐户)。
彼得·科德斯

15

您可以将目标目录指定为git clone命令的第二个参数,因此您可以执行以下操作:

git clone <remote> .

这将直接在当前本地目录中克隆存储库。


2

将git repo克隆到当前文件夹中(no git init),如果不使用ssh:

git clone https://github.com/accountName/repoName.git .

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.