在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文件夹中,是否有可能以某种方式实现(我上面的例子不起作用)
答案 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