2016-08-04 7 views
0

ich in meinen Web-Stammordnern eine PHP-Anwendung (zum Beispiel:/www/Projekt /)Test-git branch lokale Webserver

Ich mag mit meinem Projekt git verwenden, aber ich bin sehr verwirrend mit ihrem Nutzen . Zum Beispiel ...

Ich erstelle einen Zweig "NewContactPage" ... also habe ich zwei Zweige: Master und NewContactPage. Ich mache einige Änderungen über contact.php (zum Beispiel), aber wo kann ich diese Änderung testen und mit der "master" contact.php Datei vergleichen? (Ich habe nur einen Webroot-Ordner) ¿Muss ich alle Projekte zu anderen Webroot archivieren Wenn ich ein Feature testen möchte? Ja wirklich?! `

================ EDIT UPDATE FRAGE ====== Ich denke, dass ich nicht sehr gut erklären ... Ich werde Tablett mit ein anderes Beispiel.

Meine lokale Entwicklungsumgebung hat einen Apache Webserver, wo Webroot für Apache ist/Benutzer/12345/Projekt/www ok?

In diesem Verzeichnis habe ich mein Projekt (mit git), zum Beispiel, wird mein Hauptzweig entwickelt. Wenn ich also zu http://localhost gehe, kann ich die index.php für Entwicklung sehen, ok?

Nun, ich folge git fließen Best Practice und zum Beispiel, ich muss einen Zweig mit einer neuen Funktion, zum Beispiel neue contact.php Seite, so erstellen ich die Zweigstelle contactNEW und in dieser Branche bearbeiten ich Kontakt .php mit etwas code ...

Also, wenn ich gehe zu http://localhost/contact.php (zum Beispiel) werde ich neue Änderung (Zweig contactNEW) sehen, aber ... Wenn ich visuell (mit dem Webbrowser) die beiden vergleichen möchte Dateien (develop/contact.php und contactNEW/contact.php) um zB ... die "Knopffarbe" zu sehen ¿was muss ich machen? Ich muss alle Zweige in einen neuen Webstammordner kopieren? Oder ist es besser, alle Zweigkontakte NEW zu anderen Webroot (zB virtualhost) für Apache zu kopieren?

Ich nehme an, dass ich Commit oder "commit" über Repository rückgängig machen muss und dann Webbrowser aktualisieren ... ¿nein?

Dank

Antwort

0

Ich bin nicht sicher, ob ich folgen, aber ja nur ein Zweig zu einem Zeitpunkt in einer bestimmten Arbeitskopie „ausgecheckt“ werden. Aber es ist leicht genug, um Zweige zu wechseln:

Darüber hinaus sind Kopien von Git-Repositories billig und trivial zu erstellen. Plain Old cp -r <repo> <repo-copy> (unter der Annahme eines UNIX-Derivats hier) ist der Aufgabe gewachsen. Sie können dann einen Zweig in Repo-Kopie auschecken und löschen, wenn Sie fertig sind.

Um Ihre contact.php Datei zwischen den Zweigen (unabhängig von dem abgemeldeten Zweig in dieser Formulierung des Befehls) zu vergleichen:

git diff master NewContactPage contact.php 
+0

Der 'cp' Rat ist wahr, es funktioniert; Ich würde vorschlagen, das zu 'git clone' zu ​​ändern, obwohl er seine Änderungen an seinen primären Repos" pushen "kann, wenn er fertig ist. – AnoE

0

Wenn Sie git für eine Web-Anwendung zu verwenden und benötigen eine andere haben, "Testing/Staging" -Bereich, dh Sie haben:

  • Zwei Arbeitsverzeichnisse; jedes von ihnen ein komplettes git Repository, das durch "Fernbedienungen" verbunden wird.
  • Zwei Einträge in Ihrer Webserver-Konfiguration, sagen wir, mit zwei verschiedenen Ports. Jeder von ihnen zeigt auf eines der beiden Verzeichnisse. Auf diese Weise können Sie Ihre Entwicklung auf einem der Webserver testen und gleichzeitig Ihre Produktionsversion hochfahren.(Hinweis: Dies ist nicht unbedingt der "echte" Produktions-Webserver, den Ihre Kunden verwenden, sondern nur eine Version des "Produktionscodes", so dass Sie Ihre Änderungen damit vergleichen können).

Natürlich kann dies beliebig skalieren. Zum Beispiel, wenn Sie mehrere Entwickler haben, ist es sinnvoll für jeden von ihnen haben einen separaten Webserver (Port) in seiner eigenen Entwicklung zu surfen (zusammen mit ihrem separaten git Repository natürlich).

Solange alles lokal ist und Sie Ihre Anwendung nicht über Firmen-/Netzwerkgrenzen "bereitstellen" müssen, ist das wirklich alles, was es zu tun gibt.