gpt4 book ai didi

git - 使用 $GIT_DIR 环境变量或 --git-dir 标志在同一目录中运行多个 git repos 是个坏主意吗?

转载 作者:太空狗 更新时间:2023-10-29 14:44:10 25 4
gpt4 key购买 nike

我最近发现,设置 $GIT_DIR 环境变量或在命令中使用 --git-dir 标签可以让您指定一个 git 存储库来运行该命令in。这意味着您可以在目录树中有两个不同的 .git 目录,如果您愿意,可以将它们重命名为其他名称,并且仍然可以使用您喜欢的任何一个。

一个问题是您当前所在的目录将被视为您的工作目录。如果你想从子目录或什至不在你的工作树中的目录输入 git 命令,你可以指定工作目录以使用 --work-tree 标志或 $ GIT_WORK_TREE 环境变量。

这开辟了很多可能性。例如,您可以在您的主目录中为您的点文件创建一个 git 存储库,并且在子目录中仍然有其他 git 存储库用于其他工作。

是否有不经常这样做的原因?这种东西值得推荐吗?

最佳答案

作为chepner answered ,它有用的,正如您自己指出的那样,它只是有点(或很多)屁股痛,因为您还必须设置 $GIT_WORK_TREE 或使用 --work-tree 在各种情况下。您还有一个问题,即每个存储库只有一个暂存区 $GIT_DIR/index,而不管工作树如何。您也可以通过设置 $GIT_INDEX_FILE 来覆盖它。

(下一部分的方向与您不同;为了完整起见,我将其包括在内。)

在旧版本的 Git 中,有一个脚本试图使这更容易,在 Git 2.5 版中,该脚本(大部分)被替换为一个新命令,git worktree,它可以让你添加明确的独立工作树(每个工作树意味着在不同的分支上,并检查以确保它保持这种状态)。 Git 知道如何自动处理这些,并为您处理 --git-dir--work-tree 和单独的索引文件,自动。但是其中有一些错误,正在修复中;我不建议至少在 Git 版本 2.6 之前使用它,最好是 2.9 或现在的最新版本,如果你打算大量使用它的话。

关于git - 使用 $GIT_DIR 环境变量或 --git-dir 标志在同一目录中运行多个 git repos 是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38353705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com