2017-02-07 11 views
1

Drupal 8のインストールでは、次のワークフローを使用したいと考えています。どうすれば無視されたファイルをgitできますか?

1)ローカルマシンでは、インストールと更新はComposerで行います。作曲者のファイルはBitbucketにプッシュされます。

2)リモートサーバー上に私は作曲家のファイルをプルしてコンポーザーのインストールを行うステージングフォルダを持っています。

3)同じサーバー上に本番サイト用の別のフォルダがあります。ここでステージングフォルダをクローンし、後ですべての変更を取り込みます。

問題は、Drupalのコアとモジュールのフォルダ(Composerによってインストールされたもの)がgitignoreにあるということです。だから彼らはステージングからプロダクションに引っ張られません。全ステージングフォルダを追跡/バージョン管理し、変更を本番環境に引き渡すにはどうすればよいですか?もし私がgitignoreファイルを削除したら、次回Bitbucketから再び引っ張られるでしょう。

EDIT:この記事は解決策を説明したが、それは、このCIサーバでどのように動作するか私は本当に理解していない:http://nuvole.org/blog/2016/aug/19/optimal-deployment-workflow-composer-based-drupal-8-projects

答えて

1

あなたは.gitignoreを変更し、あなたの手順で再び&プルをプッシュする必要があります。

  1. をローカルマシン上で、.gitignoreにDrupalのコアとモジュールフォルダを削除してから&が再び&プッシュをコミット追加します。
  2. ステージングフォルダのリモートサーバーで、変更をプルします。
  3. 本番サイトのリモートサーバー上で、ステージングフォルダから変更を取得します。

オプション2:

  1. さえ.gitignoreは、以下のようにoverwirttedされることはありませんのBitbucketから引っ張って、ステージングフォルダに.gitignoreファイルの保護:

    git update-index --skip-worktree .gitignore

  2. 修正.gitignoreファイルを作成し、いくつかの便利なファイルをステージングフォルダに追加します。

+0

これはComposerを使用する主な理由の1つです。リポジトリに何十万ものファイルを不必要に埋め込む必要はありません。 – 0711master

+0

ファイルの一部がバージョン管理されているようにするには、 'でワイルドカードを使用できます。あなたが無視したいものをフィルタリングするために 'gitignore'を使います。 –

+0

これは重要なことではありません。ローカルマシン上で無視されるファイルがいくつかありますが、リモートサーバー上で無視されるファイルはありません。そのため、ステージングから運用に引き継ぐことができます。 – 0711master

0

ファイルをコミットし、生産に使用される別のリポジトリにプッシュし、またはブランチへ/あなたの主な開発ブランチからタグを外してください(この後者のアプローチでは、リポジトリが急速に大きくなる可能性があります)。あなたは、例えば、あまりにもステージング時にgitignoreの設定を上書きするように選択することができます。

git add -f . 

また、(例えばドッカ)展開プロセスの一環として、生産における作曲のインストールを実行している、またはあなたがプッシュすることができ、コンテナのイメージの構築を検討します開発者とプロダクションで可能な限り同様のものを維持するのを助けるためにそれを実行します。

+0

私はgitignoreを無効にするのが最適な解決策だと思います。なぜこのトピックについての情報がないのだろうか?これは通常の問題でなければならない... そして、私は、プロダクションで作曲家を使用することは本当に推奨されていないと聞きました... – 0711master

+0

私は、ビルドの再現性を実証できるように、アプリケーションをビルドするCIビルドプロセスの一部としてコンポーザーを実行することを意味しました。あなたが解決した答えの1つが問題を受け入れることを忘れないでください! –

関連する問題