首页 文章

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

提问于
浏览
1806

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

/httpdocs/whatever/public

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

/httpdocs/public

我知道如何移动文件后我想通过调用 git pull 来更新 . 我怎样才能做到这一点?

16 回答

  • 9

    要克隆到当前工作目录:

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

    要克隆到另一个目录:

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

    希望能帮助到你 :)

  • 9

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

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

  • 533
    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 .
    
  • 76

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

    git clone git@github.com:whatever .
    

    “ . ”最后将当前文件夹指定为checkout文件夹 .

  • 13

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

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

    这是我将如何做到这一点,但我已经为我做了一个别名 .

    $ 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 aliases
    alias 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's dot-files . 请随意分叉并改进它们以满足您的需求 .

  • -2

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

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

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

    git git@github.com:whatever .
    

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

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

  • 13

    Usage

    git clone <repository>
    

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

    git clone <repo> <directory>
    

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

    资料来源:Setting up a repository

  • 1

    如果您使用 ssh for 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/ 路径 .

  • 0

    关于来自原帖的这一行:

    “我知道如何在我克隆回购后移动文件,但这似乎打破了git”

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

    这种方法如上所述,但不是分解为步骤 . 这是适合我的步骤:

    • 将repo克隆到任何新的临时文件夹中

    • cd到您刚刚在本地克隆的根文件夹

    • 将文件夹的全部内容(包括/.git目录)复制到您喜欢的任何现有文件夹中; (比如你要与你的回购合并的eclipse项目)

    您刚刚将文件复制到的现有文件夹现在可以与git进行交互了 .

  • 188

    基本Git存储库克隆

    您使用克隆存储库

    git clone [url]
    

    例如,如果你想克隆名为open_framework的斯坦福大学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
    

    该命令与前一个命令的作用相同,但目标目录称为mynewtheme .

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

  • 11

    如果您尝试将事物检出到当前目录,请确保删除.git存储库 .

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

  • 7

    假设你想要一个像 /stuff 这样的文件夹,但你的拉动是在 /repo/tokens/ 下创建一个目录 .

    你可以做:

    mkdir /stuff
    ln -s /repo/tokens /stuff
    

    而已 . 你完成了 .

  • 3

    克隆:

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

    克隆“特定分支”:

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

    Option A:

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

    Option B:

    也移动.git文件夹 .

    Better yet:

    将您的工作副本保存在其他位置,并创建符号链接 .

  • 10

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

    git clone git@github.com:whatever .
    

    其他

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

相关问题