克隆GitHub存储库的内容(没有文件夹本身)

maz*_*lix 216 git github

我想要git cloneGitHub上拥有的存储库的内容.当我git clone(git @ github:me/name.git ...)我得到一个名为的文件夹,name/并且在名字内部我有我的内容......我如何获得内容?

Mar*_*air 300

如果当前目录为空,则可以使用以下命令:

git clone git@github:me/name.git .
Run Code Online (Sandbox Code Playgroud)

(注意.最后指定当前目录.)当然,这也会.git在当前文件夹中创建目录,而不仅仅是项目中的源代码.

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

  • 目录git clones into必须为空 (12认同)
  • 不幸的是,如果在同一个目录中已经存在其他非相关目录,则这不起作用.寻找解决方案.错误消息是:"致命:目标路径".已经存在..." (2认同)
  • @JohnLittle 有同样的问题,原来有一个隐藏的 .DS_Store 文件,它隐藏在那里。只需`rm .DS_Store` 就可以了。 (2认同)

Joh*_*tle 141

不幸的是,如果在同一个目录中已经有其他非相关目录,则这不起作用.寻找解决方案.错误消息是:"致命:目标路径".已经存在...".

这种情况下的解决方案是:

git init
git remote add origin git@github.com:me/name.git
git pull origin master
Run Code Online (Sandbox Code Playgroud)

即使您要签出的目录中还有其他目录,此配方也可以使用.

  • 这个答案应该被接受了.工作得很好. (5认同)

Tom*_*vič 33

如果该文件夹不为空,@ JohnLittle的一个稍微修改过的版本的答案对我有用:

git init
git remote add origin https://github.com/me/name.git
git pull origin master
Run Code Online (Sandbox Code Playgroud)

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

  • 这是相同的答案,只是在ssh上使用匿名https而不是git-protocol(需要设置ssh密钥对的github帐户). (3认同)

Lau*_*eyn 14

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

git clone <remote> .
Run Code Online (Sandbox Code Playgroud)

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