【问题标题】:How to tell git that my local directory is a specific directory in the remote tree如何告诉 git 我的本地目录是远程树中的特定目录
【发布时间】:2015-08-26 16:35:53
【问题描述】:

我在 bitbucket 上有一个共享的 git 存储库,我正在处理项目的一部分,而其他人正在处理其他部分。所有零件都在不同的文件夹中 在 git 上,文件夹结构如下所示:

rootdir
  part_foo
  part_foo2
  part_mine

然而,在我的文件系统上,我的 c++ 项目的结构如下所示:

rootdir
  bin
  src
    file1.cpp
    ...
    fileN.cpp
  test_data

bintest_data 文件夹仅供我使用,请勿提交。

所以我想要实现的是让我的本地src 文件夹的内容与part_mine 文件夹的内容同步。

我尝试了sparse-checkout 和建议的解决方案here,但它们都不是完美的解决方案,因为我最终在src 文件夹中创建了part_mine 文件夹(反之亦然),对我来说有点问题。

所以我问是否有一种方法可以告诉 git 将我的工作目录视为远程树中的一个特定目录。那就是如果我initremote 文件夹内的git 存储库src 我可以告诉git 我想在特定文件夹内push/pull(即part_mine)并查看src 中的所有文件,反之亦然。

感谢您的帮助!

【问题讨论】:

    标签: c++ git version-control bitbucket working-directory


    【解决方案1】:

    通常的解决方案是:

    • 将 repo 克隆到项目外部的某个文件夹中(此处无需稀疏签出,除非 repo 真的巨大
    • 符号链接srcrootdir/part_mine

    对于任何 git 操作,你都去 yourRepo (for git add, commit, push)

    剩下的,你照常在rootdir工作。

    【讨论】:

    • 这是一个很好的解决方法,谢谢...如果没有更直接的答案发布,我会将其标记为解决方案。
    • 我想警告大家,实际上 git 不会像您期望的那样处理符号链接...我建议查看here 以了解有关该参数的更多详细信息 - tl,博士: 按照@VonC 的建议将src 符号链接到rootdir/part_mine 有效,但反之则不行,所以请注意。
    • 我同意,这仅适用于您的项目。你的 gir repo 不知道这里的符号链接。
    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2019-12-02
    • 2010-11-30
    • 2012-11-11
    • 1970-01-01
    • 2016-08-22
    相关资源
    最近更新 更多