2017-02-07 2 views
1

Für meine Drupal 8 Installation möchte ich den folgenden Workflow verwenden:Wie kann ich ignorierte Dateien ziehen?

1) Auf dem lokalen Computer werden Installationen und Updates mit Composer durchgeführt. Composer-Dateien werden dann an Bitbucket übergeben.

2) Auf dem Remote-Server habe ich einen Staging-Ordner, in dem ich die Composer-Dateien ziehe und eine Composer-Installation mache.

3) Auf dem gleichen Server möchte ich einen anderen Ordner für die Produktionsstätte haben. Hier klone ich den Staging-Ordner und ziehe später alle Änderungen.

Das Problem ist jetzt, dass Drupal Core und Module Ordner (die von Composer installiert) sind in Gitignore. Sie werden also nicht von der Inszenierung in die Produktion gezogen. Wie kann ich den GANZEN Staging-Ordner verfolgen/versionieren und Änderungen an der Produktion vornehmen? Wenn ich die Gitignore-Dateien lösche, werden sie beim nächsten Mal wieder von Bitbucket gezogen.

EDIT: Dieser Artikel beschreibt eine Lösung, aber ich verstehe wirklich nicht, wie es mit diesem CI-Server funktioniert: http://nuvole.org/blog/2016/aug/19/optimal-deployment-workflow-composer-based-drupal-8-projects

Antwort

1

Sie sollten .gitignore ändern und drücken & Zug wieder in Ihnen vor:

  1. auf dem lokalen Rechner, löschen Sie die Drupal-Kern und Module Ordner in .gitignore und fügen Sie dann & wieder & Push begehen.
  2. Auf dem Remote-Server des Staging-Ordners ziehen Sie die Änderungen.
  3. Auf dem Remoteserver der Produktionsstelle ziehen Sie die Änderungen aus dem Staging-Ordner.

option2:

git update-index --skip-worktree .gitignore

  • Ändern .gitignore:

    1. .gitignore Datei in Testordner schützen, ziehen sogar von bitbucket der .gitignore nicht wie unten overwirtted werden Datei und fügen Sie einige nützliche Dateien im Staging-Ordner hinzu.

  • +0

    Aber dies ist einer der Hauptgründe für die Verwendung von Composer, Sie müssen Ihr Repository nicht unnötig mit zehntausenden Dateien füllen ... – 0711master

    +0

    Wenn Sie möchten, dass ein Teil der Dateien versionskontrolliert ist, können Sie Platzhalter in 'verwenden. gitignore', um diejenigen zu filtern, die Sie ignorieren möchten. –

    +0

    Das ist nicht der Punkt - ich möchte, dass einige Dateien auf dem lokalen Rechner ignoriert werden, aber keine Dateien auf dem entfernten Server ignoriert werden, so dass sie vom Staging in die Produktion gezogen werden können. – 0711master

    0

    die Dateien Commit und zu einem anderen Repository für die Produktion oder an einen Zweig verwendet Push/weg von Ihrem Hauptentwicklungszweig (der Nachteil bei diesem letzteren Ansatz ist, dass Ihr Repository schnell groß werden kann). Sie können wählen, die gitignore Konfiguration an Aufenthaltsorten Zeit auch außer Kraft zu setzen, zum Beispiel:

    git add -f . 
    

    Alternativ betrachten Ausführung des Komponisten Installation in der Produktion als Teil des Bereitstellungsprozesses oder den Bau eines Container Bild, das Sie schieben kann (zB Docker) und das laufen zu lassen, um die Dinge in der Entwicklung und Produktion so ähnlich wie möglich zu halten.

    +0

    Ich denke, Gitignore zu übersteuern ist die beste Lösung. Ich frage mich, warum es zu diesem Thema nicht mehr Informationen gibt, da dies ein übliches Problem sein muss ... Und ich habe gehört, dass die Verwendung von Composer in der Produktion nicht wirklich empfohlen wird ... – 0711master

    +0

    Ich meinte, Sie führen Composer als Teil des CI-Build-Prozesses aus (ob dies automatisiert oder ein manueller Schritt ist), der Ihre Anwendung aufbaut, sodass Sie die Wiederholbarkeit Ihrer Builds demonstrieren können. Wenn eine der Antworten, die Sie haben, das Problem löst, vergessen Sie nicht, es zu akzeptieren! –

    Verwandte Themen