Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git子树提交和推送_Git_Git Subtree_Subtree - Fatal编程技术网

Git子树提交和推送

Git子树提交和推送,git,git-subtree,subtree,Git,Git Subtree,Subtree,假设以下典型子树配置: A是本地回购,具有典型的提交历史 文件夹B是A下的子树 文件夹B是C的克隆,C是我在上游(例如Github)的个人回购 我已经把C和D分开了,D不是我个人的回购协议 如果我对B做了一些修改,并想更新C,我通常会做的是: 做一个承诺 “git子树推送”从本地B到上游C 当我第一次这样做时(即在初始设置B之后),上游C从A获取所有提交历史,即使我在git子树推送期间使用--squash。但它不会在第一次推后发生 这是正常的行为吗?如何防止C拥有A的所有不必要的提交历史记录

假设以下典型子树配置:

  • A是本地回购,具有典型的提交历史
  • 文件夹B是A下的子树
  • 文件夹B是C的克隆,C是我在上游(例如Github)的个人回购
  • 我已经把C和D分开了,D不是我个人的回购协议
如果我对B做了一些修改,并想更新C,我通常会做的是:

  • 做一个承诺
  • “git子树推送”从本地B到上游C
  • 当我第一次这样做时(即在初始设置B之后),上游C从A获取所有提交历史,即使我在git子树推送期间使用--squash。但它不会在第一次推后发生

    这是正常的行为吗?如何防止C拥有A的所有不必要的提交历史记录

    我猜这是因为C是我个人的回购协议。如果我请求D的所有者拉取C,他/她可能可以用挤压来拉取,以忽略a的所有不必要的提交历史