Git拉入“远程”目录

时间:2012-09-18 09:03:49

标签: git

在Git中,您可以将给定目录克隆到给定目录:

git clone ssh://gitolite@dev.bipper.com:3687/com/bipper/kids/portal <dir>

当我运行我们的一个构建脚本时,“cd”命令出现一些复杂问题的原因我想把git拉成这样的东西:

git pull <dir-to-the-git-folder>

当执行pull(或fetch / merge)时,Ergo不必在git文件夹中,是否有可能以某种方式实现(我上面的例子不起作用)

3 个答案:

答案 0 :(得分:3)

我认为您应该查看git-dir以及work-tree选项。如果您愿意,也可以使用GIT_DIR / GIT_WORK_TREE变量。

参见手册:

  

--git-dir=<path>   设置存储库的路径。这也可以通过设置GIT_DIR环境变量来控制。它可以是当前工作目录的绝对路径或相对路径。

     

-work-tree=<path>              设置工作树的路径。它可以是绝对路径或相对于当前工作目录的路径。这也可以通过设置GIT_WORK_TREE环境变量和来控制              core.worktree配置变量(有关更详细的讨论,请参阅git-config(1)中的core.worktree)。

答案 1 :(得分:1)

尝试

GIT_DIR=<dir-to-the-git-folder>/.git GIT_WORK_TREE=<dir-to-the-git-folder> git pull

您还可以分别使用--git-dir--work-tree指定这些选项。

来自man git

   --git-dir=<path>
       Set the path to the repository. This can also be controlled by setting the GIT_DIR environment
       variable. It can be an absolute path or relative path to current working directory.

   --work-tree=<path>
       Set the path to the working tree. It can be an absolute path or a path relative to the current
       working directory. This can also be controlled by setting the GIT_WORK_TREE environment variable
       and the core.worktree configuration variable (see core.worktree in git-config(1) for a more
       detailed discussion).

答案 2 :(得分:1)

从git 1.8.5开始,您可以使用-C选项更改目录上下文。

sudo -u www-data -H git -C /var/www/ status

-H将为您的命令设置home-dir。它是可选的,但在您想要避免以下错误时非常有用:

warning: unable to access '/root/.config/git/attributes': Permission denied
or
warning: unable to access '/home/user/.config/git/attributes': Permission denied