2017-08-30 13 views
0

私はnodejsプロジェクトを含む2つのリポジトリを持っています。 プロジェクトの構造は両方のリポジトリで似ています。リポジトリからリポジトリBへのリンクフォルダ

  • ソース/
    • モデル
    • サービス
    • 他のフォルダ...

モデルフォルダがまったく同じコードが含まれていると私は疑問に思っている場合theresの2つのgitリポジトリ間でこのフォルダをリンクするためのソリューションです。 lsoは同じもので更新されました。

repo Aのソース/モデルフォルダは、repo Bのsource/modelsフォルダを指します。また、masterブランチが更新されると、変更はコピーなしで両方のリポジトリで使用可能になりますまたは何かの周りを乱す。

symlinkはdeplyomentでプロジェクトが別のマシンに配置されている可能性があるため、実際には動作しません。また、すべてのdevコンピュータでsymlinkを設定しなければなりません。私はgitでこれを動作させたいと思います。私はgitのサブツリーとサブモジュールを見ましたが、レポの中のフォルダをリンクする方法を理解できませんでした。私もリンクしたいそれぞれのフォルダのために別のレポを作成したくありません。それが不可能な場合は、私はより良い回避策について知りたいと思います。私はgithubを使用しています。

+0

gitでは、各リポジトリは異なるエンティティです。私が知る限り、repos間のコミットのリンクはサポートされていません。 – ifconfig

+0

[submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules)を見ているようですが、このようなシナリオがあります。ただし、Subversionのように、特定のパスを取得することはできません。代わりに、全体のリポジトリで動作します。それを使用するには、物事を再編成する必要があります(モデルコードでは3番目のレポ、それ以外の2つはサブモジュールとして組み込む)が、これは間違いなく選択肢です。 – jszakmeister

+0

@ jszamaister 1つのリポジトリにコミットして他の共有リポジトリで自動的に更新できるのであれば、reposと同じくらいの数のリポジトリを持つことは賢明でしょうか?コードを分割して複数回コミットする必要があるのは、コミットを行う前にディレクトリをコピーすることと同じです。私はそれを心配する必要はありませんので、私はそれを自動化することはできますか?私は不思議です.. – Azarus

答えて

0

私は以下の回避策を検討するのではなく、誰かのGitワークフローで終わる可能性のある有効な手順を検討します。

リポジトリでは、Bへの参照を作成するgit remote add b <url-to-b>を実行します。その時点以降、git checkout b/<branch-name> -- ./Source/Modelsにアクセスできるため、Bのリビジョンの下にあるフォルダの内容が取得されます。

注:テクニックは双方向に適用できます。

+0

こんにちは感謝します。この方法についていくつか質問があります。開発マシンでこれを自動化する方法はありますか?だから私はいつでも私は自動的にそれらを同期することができます更新プログラムをプル?毎回更新するたびにこれを手動で行うのは厄介なことです。私はこのようなシナリオがあまりにも単純ではなく、githubの箱からすぐにサポートされていることに驚いています。 – Azarus

関連する問題