如何将 Git 存储库克隆到特定文件夹?

git clone git@github.com:whatever执行git clone git@github.com:whatever命令git clone git@github.com:whatever都会在我当前的文件夹中创建一个名为 any 的目录,并将 Git 存储库的内容拖放到该文件夹中:

/httpdocs/whatever/public

我的问题是我需要将 Git 存储库的内容克隆到当前目录中,以便它们出现在 Web 服务器的正确位置:

/httpdocs/public

克隆存储库后,我知道如何移动文件,但这似乎破坏了 Git,我希望仅通过调用git pull即可进行更新。我怎样才能做到这一点?

答案

选项 A:

git clone git@github.com:whatever folder-name

Ergo,在right here使用:

git clone git@github.com:whatever .

选项 B:

也移动.git文件夹。请注意, .git文件夹在大多数图形文件浏览器中都是隐藏的,因此请确保显示隐藏的文件。

mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/

第一行抓取所有普通文件,第二行抓取点文件。也可以通过启用 dotglob(即shopt -s dotglob )在一行中完成此操作,但是如果您问这个答案所回答的问题,那可能是一个不好的解决方案。

更好的是:

将工作副本保存在其他位置,并创建一个符号链接。像这样:

ln -s /where/it/is/right/now /the/path/I/want/to/use

对于您而言,这类似于:

ln -sfn /opt/projectA/prod/public /httpdocs/public

可以轻松更改以测试是否需要,即:

ln -sfn /opt/projectA/test/public /httpdocs/public

无需移动文件。添加了-fn ,以防有人复制这些行( -f是强制的, -n避免与已经存在或不存在的链接进行某些经常不必要的交互)。

如果您只是想让它工作,请使用选项 A;如果其他人要查看您所做的工作,请使用选项 C。

我想很多人问这个问题的例子就是这个。如果您位于目录中,则要将 git 信息库的内容转储到该目录中,请运行:

git clone git@github.com:whatever .

“。” 最后将当前文件夹指定为检出文件夹。

进入文件夹。如果文件夹为空,则:

git clone git@github.com:whatever .

其他

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

基本的 Git 仓库克隆

您可以使用克隆一个存储库

git clone [url]

例如,如果要克隆斯坦福大学 Drupal 开放框架 Git 库,称为 open_framework,则可以这样进行:

$ git clone git://github.com/SU-SWS/open_framework.git

这将创建一个名为 open_framework 的目录(在您当前的本地文件系统位置),在其中初始化一个. git 目录,拉出该存储库的所有数据,并签出最新版本的工作副本。如果进入新创建的 open_framework 目录,您将在其中看到项目文件,可以继续使用或使用。

将存储库克隆到特定的本地文件夹

如果要将存储库克隆到一个名为 open_framework 以外的目录中,可以将其指定为下一个命令行选项:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

该命令与上一个命令具有相同的功能,但是目标目录称为 mynewtheme。

Git 有许多可以使用的不同传输协议。前面的示例使用 git:// 协议,但是您可能还会看到使用 SSH 传输协议的 http(s):// 或 user @ server:/path.git。

要将 git 仓库克隆到特定文件夹中,可以使用-C <path>参数,例如

git -C /httpdocs clone git@github.com:whatever

虽然它还是会创造一个whatever在它上面的文件夹,所以对资源库的内容克隆到当前目录,请使用以下语法:

cd /httpdocs
git clone git@github.com:whatever .

请注意, 当目录为 时才允许克隆到现有目录。

由于您要克隆到可公开访问的文件夹中,因此请考虑使用--separate-git-dir=<git dir>将 Git 存储库与工作树--separate-git-dir=<git dir>或在 Web 服务器配置中排除.git文件夹(例如,在中.htaccess文件)。

当您将文件移动到所需位置时,是否也在移动.git目录?根据您的操作系统和配置,此目录可能是隐藏的。

它包含存储库和支持文件,而/public目录中的项目文件仅是当前签出提交(默认为 master 分支)中的版本。

克隆:

git clone git@jittre.unfuddle.com:jittre/name.git

克隆 “特定分支”:

git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git

如果要克隆到当前文件夹,则应尝试以下操作:

git clone https://github.com/example/example.git ./

克隆到当前工作目录

git clone https://github.com/link.git

克隆到另一个目录

git clone https://github.com/link.git ./Folder1/Folder2

希望能帮助到你 :)

用法

git clone <repository>

将位于 的存储库克隆到本地计算机上。原始存储库可以位于本地文件系统上,也可以位于可通过 HTTP 或 SSH 访问的远程计算机上。

git clone <repo> <directory>

将位于 的存储库克隆到本地计算机上名为 的文件夹中。

资料来源: 建立资料库