4

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

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

当我运行我们的一个构建脚本时,“cd”命令会出现一些复杂问题,我想使用 git pull 如下所示:

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

Ergo 在执行拉取(或获取/合并)时不必在 git 文件夹中,是否有可能以某种方式实现(我上面的示例不起作用)

4

3 回答 3

4

我认为你应该看看,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)。

于 2012-09-18T09:06:24.360 回答
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).
于 2012-09-18T09:06:51.493 回答
1

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

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

-H将为您的命令设置主目录。它是可选的,但在您想避免以下错误时很有用:

warning: unable to access '/root/.config/git/attributes': Permission denied
or
warning: unable to access '/home/user/.config/git/attributes': Permission denied
于 2015-11-16T11:20:50.073 回答