如何克隆一个Git仓库到一个特定的文件夹?

执行git clone git@github.com:whatever命令,在我的当前文件夹中创建一个名为什么的目录,并将Git仓库的内容放到该文件夹中。

/httpdocs/whatever/public

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

/httpdocs/public

我知道如何在克隆仓库后移动文件,但这似乎破坏了Git,我希望能够通过调用`git pull'来更新。我怎样才能做到这一点?

解决办法

选项A:

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

二、对于这里的使用。

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。

评论(18)

我想很多问这个问题的人都在寻找这样的例子。如果你在**目录中,你想把git仓库的内容转储到该目录中,运行。

git clone git@github.com:whatever .

最后的"."指定当前文件夹为签出文件夹。

评论(7)

当你移动文件到你想要的地方时,你是否也移动了.git目录?根据你的操作系统和配置,这个目录可能是隐藏的。

它包含了 repo 和支持文件,而在你的 /public 目录中的项目文件只是当前检出提交(默认为主分支)的版本。

评论(0)