2

私は自分の php プロジェクトをプライベート GitHub アカウントに保存しています。

たとえば、さまざまなコンポーネント (ニュース バンドル、ユーザー バンドルなど) と、それらすべてを一緒に使用する 1 つのプロジェクト (カスタム Web サイトなど) があります。どういうわけかそれらをシンボリックリンクできますか?

または、コンポーネント リポジトリのみを使用する必要がありますか?

よろしく

編集:

たとえばsymfony2プロジェクトの場合、これを行う簡単な方法がほとんどです。親リポジトリでも利用可能なコンポーネントが常に存在します。

例: https://github.com/symfony/OptionsResolver

symfony/OptionsResolver->syfmony/symfony->symfony/standard-edition

4

4 に答える 4

4

Symfony 2 Git プロジェクトで依存関係を処理する方法は次のとおりです。

主なプロジェクトは Git の下にあります。外部の依存関係 (バンドルとすべてのベンダーのもの) は .deps ファイル (または composer.json) に入ります。次に、依存関係を実行php bin/vendors installまたはインストールします。composer install

依存関係は Git リポジトリとしてインストールされるので、必要に応じcdてそれらにコミットし、権限があればプッシュすることもできます。これにより、独自のバンドルの編集が簡単になり、別のバンドル リポジトリを複製してそこで変更できるようにする必要がなくなります。

私もこの構造を持っています:

src\Company\SharedBundle
src\Company\ProjectBundle

WhereSharedBundleは単に依存関係として指定され、ターゲットのインストール パスは の下にありsrc\Companyます。

私はSharedBundleすべてのプロジェクトで を使用しています。それに変更を加える必要がある場合は、プロジェクトの 1 つで変更を行い、それをcd src\Company\SharedBundleコミットしてプッシュし、変更が必要なときにそれを使用するすべてのプロジェクトからプルします。

ではdeps、次のようなターゲティングを行うことができます。

[AcmeAwesomeBundle]
    git=http://github.com/johndoe/Acme/AwesomeBundle.git
    target=../src/Acme/AwesomeBundle

Composer を使用している場合は、おそらくこれが必要です: http://getcomposer.org/doc/01-basic-usage.md#autoloading

于 2012-05-27T09:11:28.807 に答える
1

composerを使用して依存関係を処理できます。これは、サブモジュールのようにサブプロジェクトを特定のコミットにロックしません。symfony は composer を使用します。

于 2012-05-26T17:42:36.127 に答える
1

さまざまなリポジトリからすべてのファイルを別の 1 つのリポジトリにインポートし、必要に応じてそれらを更新できるようにしたい場合は、他のすべてのリポジトリをリモート リポジトリとしてメインのリポジトリに追加するだけでよいと思います。

明らかに、これを試す前にすべてをバックアップしますが、「git remote add [他のリポジトリの任意の名前] [他のリポジトリの場所]」、「git fetch [他のリポジトリの任意の名前]」、「get merge [他のリポジトリの任意の名前]/[他のリポジトリのブランチ]". これは、好きなだけ多くの異なるリポジトリで行うことができます。たとえば、私のすべてのリポジトリは、構築に使用したフレームワークのリポジトリのクローンとして開始されるようになりました。私のプロジェクトがたまたまフレームワークを出発点として使用することを除けば、フレームワークと実際には何の関係もないことは少しも問題ではありません。

したがって、次のようなものが必要です。

git remote add news-bundle git://example.com/news-bundle.git
git merge news-bundle/master
git remote add user-bundle git://example.com/user-bundle.git
git merge user-bundle/master

次に、news-bundle にさらに変更を加えたら、次のように他のリポジトリを更新できます。

git fetch news-bundle
git merge news-bundle/master
于 2012-05-27T07:40:50.367 に答える
1

Submodules を参照してください。

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

于 2012-05-26T13:04:18.507 に答える