6

いくつかのファイルを含む 2 つの git リポジトリを想定してみましょう。

ProjectA
+ a
+ b

ProjectB
+ foo/x
+ foo/y
+ bar/z

ここで、 ProjectBfooのディレクトリをProjectAに含めたいと思います。

私が理解している限り、git subtree addそれprefixは受信リポジトリにあるはずのパスです。

git subtree add --prefix=project_b --squash URL_of_ProjectB

私はで終わるだろう

ProjectA
+ a
+ b
+ project_b
  + foo/x
  + foo/y
  + bar/z

fooこのレイアウトを取得するためだけに取得したいことをどうにかして指定できますか?

ProjectA
+ a
+ b
+ project_b
  + x
  + y
4

1 に答える 1

5

では実現できないと思いますgit subtree。多分git filter-branchあなたが必要とするものです:

git remote add b <URL_TO_B>
git fetch b
git checkout -b b_master b/master

bのみを含む履歴を書き換えfooます:

git filter-branch --prune-empty --subdirectory-filter foo b_master

または使用git subtree split

git subtree split -P foo --branch foo

サブツリーとして追加します

git subtree add --prefix=project_b --squash b_master or foo
于 2013-05-17T07:29:35.763 に答える