2009-10-08 8 views
46

私はさまざまなサーバー上の複数のサブドメインにわたるいくつかのアプリケーションを持っています 各アプリケーションには独自のgitリポジトリがあります。各アプリケーションは複数の共有ファイルを使用します。 私のレポは本質的に重なります。 この状況は、複数のプロジェクトの複数のエディタでどのように処理するのが最適ですか?gitリポジトリ間でファイルを共有するには?

答えて

14

すべての重複部分を作成しようとします。git submodules

+2

調査の結果、共有リソースをサブモジュールとして編集できないようです。理想的には、共有されている他のプロジェクトから共有を編集できますが、中心的な場所を維持したいと考えています。これはまだサブモジュールで可能ですか? – tbeseda

+2

含まれているいずれかのプロジェクトに取り組んでいる人は、サブモジュールに変更を加えることができますが、変更は個別に追跡する必要があります。 git repoに変更をプッシュする方法はなく、変更のいくつかは他のrepoにもプッシュする必要があることがわかります。 – mckeed

+1

ここでは、ウォークスルーアプローチを使用したドキュメントがいくつかあります:http://git-scm.com/book/en/Git-Tools-Submodules and https://git.wiki.kernel.org/index .php/GitSubmoduleチュートリアル – Sean

6

明らかに区別できるように共通要素を分割してから、サブモジュールを使用するように思えます。共通の部分をはっきりと分けるようにしてください。そうしないと、維持できない混乱が生じる可能性があります。

7

複数のプロジェクトが変更をサブモジュールに共有ロケーションまでプッシュしている限り、彼らはすべて共有リソースを変更できます。つまり、彼らのうちの1人が「特別」である必要がある場合、サブモジュールを分岐させる必要があります。

https://git-scm.com/book/en/v2/Git-Tools-Submodules

これは、スーパープロジェクト内からサブモジュールを編集し、それを押し返す、サブモジュールとスーパープロジェクトを説明します。また、git submodule updateを実行し、masterブランチでローカルにプッシュしていない変更があった場合、サイレントに変更を上書きするという危険も1つ表示されます。

具体的には、共有フォルダー 'フォルダー'がある場合は、これをすべてのgitプロジェクトから削除する必要がありますが、現在の内容を初期コミットとして新しいgit repoを作成する必要があります。その後、あなたは今それを共有するすべてのプロジェクトでgit submodule <repo> folder; git submodule updateになります。彼らはすべて共有リポジトリに変更をプッシュできるようになり、お互いの変更をプルダウンすることができます。

1

git-subrepoツールを使用することもできます。 wikiページがリンクされています。基本的にはsubmodulesubtreeの改良版です。

関連する問題