在自定义位置设置.git文件夹

在自定义位置设置.git文件夹,git,cvs,Git,Cvs,以下是我当前的目录结构: 密吉特 代码 吉特先生 莫尔科德 麦可德 代码文件夹由git监控,git的文件位于通常的code/.git中 我只处理这段代码的一部分,即mycode 我希望使用git来管理我的代码,但我不希望它的文件放在预期的code/morecode/mycode/.git中,而是放在代码文件夹之外,例如在mygit中 有什么办法吗?我的原始答案如下,但我重新思考了这个问题,我认为这不是您真正想要的-我在第一次阅读时没有注意到您只需要存储库的一个子目录。在任何情况下,使

以下是我当前的目录结构:

  • 密吉特
  • 代码
    • 吉特先生
    • 莫尔科德
      • 麦可德
  • 代码文件夹由git监控,git的文件位于通常的code/.git中
  • 我只处理这段代码的一部分,即mycode
  • 我希望使用git来管理我的代码,但我不希望它的文件放在预期的code/morecode/mycode/.git中,而是放在代码文件夹之外,例如在mygit中


    有什么办法吗?

    我的原始答案如下,但我重新思考了这个问题,我认为这不是您真正想要的-我在第一次阅读时没有注意到您只需要存储库的一个子目录。在任何情况下,使用
    --git dir
    和friends都会很快让人困惑——例如,你需要记住,不管你从哪里执行git命令,仍然只有一个索引(临时区域)

    相反,我认为您真正想要做的是使
    mygit
    成为指向子目录的符号链接,然后在
    code
    目录中执行所有git操作


    您可能希望查看中的文档,特别是
    --git dir
    --work tree
    选项以及类似的
    git_dir
    git_work_tree
    环境变量的部分。您可以使用这些设置任意目录为您的工作树和git目录


    这里很容易忽略的一个问题是,如果您不将绝对路径传递给
    --git dir
    (或
    git_dir
    ),它将与工作树相关,而不是与当前目录相关。

    此外,您可以简单地将.git作为常规文件并在其中放置路径,而不是使用符号链接:

    $ echo gitdir: /path/to/gitdir > .git $echo gitdir:/path/to/gitdir>.git
    伟大的似乎正是我想要的!谢谢@阿不思·邓布利多:谢谢——事实上我现在已经改变了我的答案,但我仍然不确定我是否正确理解了你的问题。我认为您希望
    mygit
    对应于
    morecode
    ,对吗?真的吗?听起来很有趣。谢谢