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

命令git clone git@github.com:whatever创建一个名为whatever的目录,其中包含一个Git存储库:

./whatever/.git

我希望将Git存储库的内容克隆到我的当前目录./中:

./.git
2591392 次浏览

备选办法A:

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

因此,对于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/

第一行抓取所有普通文件,第二行抓取点文件。也可以通过启用dotgob(即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目录?根据您的操作系统和配置,此目录可能会被隐藏。

它包含repo和支持文件,而/public目录中的项目文件仅是当前签出提交中的版本(默认情况下是主分支)。

我认为很多人问这个问题的例子是这样的。如果您是,您希望将git存储库的内容转储到的目录,请运行:

git clone git@github.com:whatever .

末尾的“.”将当前文件夹指定为结帐文件夹。

如果您尝试将内容签出到当前目录,请确保删除. git存储库。

rm -rf .git然后git clone https://github.com/symfony/symfony-sandbox.git

克隆:

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

克隆“特定分支”:

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

基本的Git仓库克隆

你克隆一个仓库

git clone [url]

例如,如果您想克隆名为open_framework的Stanford University Drupal Open Framework Git库,您可以这样做:

$ 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

该命令与前一个命令执行相同的操作,但目标目录称为mynew主题。

您可以使用多种不同的传输协议。前面的示例使用git://协议,但您也可以看到超文本传输协议://或user@server:/path.git,它使用SSH传输协议。

关于这行来自原始帖子:

"我知道如何在克隆存储库后移动文件,但这

我能够做到这一点,到目前为止,我没有看到我的添加、提交、推送、拉取操作有任何问题。

上述方法已说明,但没有分解为步骤。以下是对我有用的步骤:

  1. 将repo克隆到任何新的临时文件夹中
  2. cd到您刚刚在本地克隆的根文件夹中
  3. 将文件夹的全部内容(包括 /.git目录)复制到您喜欢的任何现有文件夹中;(例如要与存储库合并的eclipse项目)

您刚刚将文件复制到的现有文件夹现在已准备好与git交互。

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

git clone git@github.com:whatever .

否则

git initgit remote add origin PATH/TO/REPOgit fetchgit checkout -t origin/master

用法

git clone <repository>

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

git clone <repo> <directory>

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

来源:设置存储库

我会这样做,但我已经为自己做了一个别名。

$ cd ~Downloads/git; git clone https:git.foo/poo.git

可能有一种更优雅的方法来做到这一点,但我发现这对我自己来说是最简单的。

这是我为加快速度而创建的别名。我为zsh制作了它,但它应该适用于bash或任何其他shell,如fish、xyzsh、fizsh等。

用你最喜欢的编辑器编辑~/.zshrc/.bashrc等(我的是Leafpad,所以我会写$ leafpad ~/.zshrc)。

然而,我个人的偏好是制作一个zsh插件来跟踪我所有的别名。您可以通过运行以下命令为oh-my-zsh创建一个个人插件:

$ cd ~/.oh-my-zsh/$ cd plugins/$ mkdir your-aliases-folder-name; cd your-aliases-folder-name# In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases'$ leafpad your-zsh-aliases.plugin.zsh# Again, in my case 'ev-aliases.plugin.zsh'

然后,将这些行添加到新创建的空白alises.plugin文件中:

# Git aliasesalias gc="cd ~/Downloads/git; git clone "

(从这里开始,用我的名字代替你的名字。

然后,为了让别名发挥作用,它们(以及zsh)必须是来源(或任何名称)。为此,请在您的自定义插件文档中添加以下内容:

## Ev's Aliases
#### Remember to re-source zsh after making any changes with these commands:
#### These commands should also work, assuming ev-aliases have already been sourced before:
allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear"sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh"####
####################################
# git aliases
alias gc="cd ~/Downloads/git; git clone "# alias gc="git clone "# alias gc="cd /your/git/folder/or/whatever; git clone "
####################################

保存您的oh-my-zsh插件,然后运行allsource。如果这似乎不起作用,只需运行source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh。这将加载插件源,允许您从现在开始使用allsource


我正在使用我所有的别名制作一个Git存储库。请随时在这里查看它们:Ev的文件夹。请随时分叉并改进它们以满足您的需求。

如果您想克隆到当前文件夹,您应该尝试以下操作:

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

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

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

尽管它仍然会在其上创建一个whatever文件夹,但要将存储库的内容克隆到当前目录中,请使用以下语法:

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

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

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

要克隆到当前工作目录

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

要克隆到另一个目录

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

希望有帮助:)

如果您使用ssh作为git cloning,您可以使用以下命令。

git -C path clone git@github.com:path_to_repo.git

例如:git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git会将requests的git存储库拉到您的/home/ubuntu/路径。

For Windows user
1> Open command prompt.2> Change the directory to destination folder (Where you want to store your project in local machine.)3> Now go to project setting online(From where you want to clone)4> Click on clone, and copy the clone command.5> Now enter the same on cmd .
It will start cloning saving on the selected folder you given .

由于某种原因,这种语法并不突出:

git clone repo-url [folder]

此处文件夹是本地文件夹(将是本地存储库)的可选路径。

Gitclone还将pull代码从远程存储库放入本地存储库。这是真的:

git clone repo-url  =  git init + git remote add origin repo-url + git pull

虽然上述所有答案都很好,但我想提出一种新方法,而不是在公共html目录中使用符号链接方法,如接受的答案中建议的Best。您需要访问您的服务器虚拟主机配置。

它是关于配置Web服务器的虚拟主机直接指向存储库目录。在Apache中,您可以这样做:

文档根 /var/www/html/website/your-git-repo

这是一个虚拟主机文件的示例:

<VirtualHost *:443>ServerName example.com
DocumentRoot /path/to/your-git-repo............</VirtualHost>

您可以使用以下git命令使用自定义目录名称克隆

git clone <git_repo_url> <your_custom_directory_name>

备注:你不需要创建您的自定义目录,因为它会自动创建

如果您在想要转储git存储库内容的目录中,请运行:

git clone git@github.com:origin .

末尾的“.”将当前文件夹指定为结帐文件夹。

  • 转到要克隆存储库的目录。
    (不要在该目录中运行git init命令)

  • 只需运行命令,
    git clone <git repo url> .

示例:git clone https://github.com/Rashmi-Wijesekara/portfolio.git .