我在做:

git clone ssh://user@host.com/home/user/private/repos/project_hub.git ./

我得到:

致命:目标路径'。’已经存在,不是空的 目录中。

我知道路。已经存在。 我可以保证这个目录是空的。(我在里面,我什么都看不到!)

为了将该项目克隆到当前目录,我在这里遗漏了什么?


当前回答

以下是我的发现:

我看到了这个:

fatal: destination path 'CouchPotatoServer' already exists and is not an empty directory.

在我的搜索中,我偶然发现:

https://couchpota.to/forum/viewtopic.php?t=3943

看看Clinton.Hall的词条… 如果你尝试这样做(就像我做的那样),你可能会得到访问拒绝响应,这是我的第一个线索,所以最初的错误(对我来说),实际上是逃避到错误的根本问题。

在windows中解决此问题: 确保运行CMD或git elevated,然后运行:

git clone https://github.com/RuudBurger/CouchPotatoServer.git

以上就是我的问题,简单地提升对我来说很有效。

其他回答

Do

git clone https://user@bitbucket.org/user/projectname.git .

目录必须为空

以下内容可能并不完全等同于克隆游戏,但对我来说却很管用:

git init .
git remote add -t \* -f origin <repository-url>
git checkout master

在我的例子中,这将生成一个.git/config文件,该文件与我在进行克隆时得到的文件相同。

通过mkdir filename创建一个新的项目目录,然后运行git clone xxxxx命令,并移动文件,这是很有用的

改进@GoZoner的回答:

git clone <repository> foo; shopt -s dotglob nullglob; mv foo/* .; rmdir foo

shopt命令取自这个SO答案,并将Bash上的'mv'命令的行为更改为包含dotfiles,您需要包括.git目录和任何其他隐藏文件。

还要注意,只有在当前目录(.)为空的情况下,这才保证正常工作,但只要克隆的repo中没有任何文件与当前目录中的文件具有相同的名称,它就可以正常工作。如果你不关心当前目录中有什么,你可以在'mv'命令中添加-f (force)选项。

如果当前目录是空的,那么这将工作:

git clone <repository> foo; mv foo/* foo/.git* .; rmdir foo