2017-03-07 13 views
0

私は別のプロジェクトBを利用するプロジェクトAがあります。git - 他のプロジェクトを含める

そのため、Aのgitリポジトリにサブフォルダがあり、その中にBがクローンされています。

このフォルダをA'sレポに同期する最も簡単な方法は、おそらくそのフォルダとその中のすべてをA'sインデックスに追加して完了させることです。

私はそのようなネストされたgit構造体での経験がないので、それは賢明なことだと思います。私はそのようにして何かを危険にさらしますか?そして代替案は何ですか?

+1

で見ることができるサブモジュールとの比較を含め、この方法について

より多くのあなたは2つのオプションを持っている:-) submodu作品レットとサブツリーのマージ。私はお勧めします:それは簡単に維持するため、サブツリーのマージです。通常の方法で各リポジトリを作成するだけです。あなたの "コレクター"リポジトリで、あなたの "コレクター"ディレクトリのディレクトリに別のリポジトリをマージすることができます。コマンドを入力したい場合は、私は答えを追加することを知らせてください。 – Teocci

+1

サブツリーがサブモジュールよりも保守しやすいかどうかは疑わしいです。経験則として、リポジトリ 'B'が頻繁に変更される場合は、サブツリーとして使用する必要があります。相対的に安定した段階にある場合は、サブモジュールとして使用する必要があります。サブモジュールを使用する時期についての良い記事は、[here](https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407#.lhi1isank)、サブツリーの各記事はこちら[https: //medium.com/@porteneuve/mastering-git-subtrees-943d29a798ec#.d5zzxh5kv)。 – kowsky

+0

@Teocciは答えに精緻化することを自由に感じます。 – User1291

答えて

2

私がお勧めしたいのは、プロジェクトが頻繁に変更された場合、@ kowskyが述べたように、メンテナンスが容易だからです。subtree merging

通常の方法で各リポジトリを作成するだけで済みます。あなたの "コレクター"リポジトリにある間、別のリポジトリを "コレクター"ディレクトリのサブディレクトリとしてマージすることができます。 、

$ git remote add -f AnotherRepo /path/to/that/repo 
$ git merge -s ours --no-commit AnotherRepo/master 
$ git read-tree --prefix=AnyDirectoryToPutItIn/ -u AnotherRepo/master 
$ git commit -m "Merge AnotherRepo project as subdirectory"` 

次に、あなたの「コレクター」リポジトリにAnotherRepoを引っ張るために(またはそれを更新するために)、サブツリーマージ戦略を使用します:ちょうどこれらのコマンドを実行することを行うために

$ git pull -s subtree AnotherRepo master 

このそれを行うための一般的な方法であり、それがこのgitのGit-Tools-Subtree-Merging

関連する問題