PHP PHP-App über GitLab updaten?

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen,

ich habe vor einigen Monaten eine Web-App, programmiert in PHP, Laravel) über GitLab installiert.
Vorab, falls ich mich falsch ausdrücke, bitte entschuldigt, ich kenne mich damit noch nicht so aus.

So, nach der Installation habe ich einige Modifikationen am Quellcode der App vorgenommen.
Dies habe ich direkt über ein FTP-Programm gemacht, nicht über Git oder irgendwie anders.

Jetzt möchte ich meine App gerne über GitLab updaten, da der Entwickler einige Fehler behoben hat.
Wenn ich das Update aber vornehme, wie schaut es dann mit meinen Modifikationen aus? Werden
diese dann überschrieben? Wie kann ich mir den Verlauf eines Updates allgemein vorstellen?
- Werden dann alle Daten, die in dieser Rep. sind, erneut auf den Server gezogen?

VG, David
 
Um diese Frage umfassend zu beantworten, müsste man wissen, wie genau die Installation und der Update-Vorgang bei dir aussehen. Ich würde aber davon ausgehen, dass deine Änderungen nach dem Update weg sind. Um sie sicher zu behalten, müsstest du sie in Git einchecken und beim Update mit den Änderungen des Entwicklers mergen.
 
Also, ich habe es jetzt nochmal geprüft. Die Änderungen wären dann wirklich weg.
- Jetzt ist die Frage, wie ich es dennoch machen kann. Gibt es Möglichkeiten, um die
Änderungen finden zu können? Kann ich die alte Version mit der neuen Abgleichen
um die Änderungen zu finden und diese in die neue Version bspw. einspielen?

- Oder geht gibt es ähnliche Möglichkeiten, das zu erreichen?

EDIT:
Ich habe jetzt mal ein bisschen gegoogelt.
Ich finde zwar so Tools, aber die geben einem nur die gesamte
Datei wieder, die nicht mit der jeweils anderen übereinstimmt.

Problem daran:
Habe ich eine Datei mit 5.000 Zeilen und nur Zeile 2.000 bis 2.005 wurden
angepasst (ggf. auch hinzugefügt) - dann befinden sich die Zeilen darunter
schließlich an anderen Positionen. Gibt es da ne Möglichkeit, nur auf die
entsprechenden sechs Zeilen hingewiesen zu werden?
 
Zuletzt bearbeitet:
Ich würde das branchen/forken einfach nachspielen:

Code:
git clone [url]
git checkout [commit-hash | tag]
git checkout -b [my-own-change-branch]
# Deine Version ins Repository kopieren und vorhandenes überschreiben
git add -A
git commit -m 'my own changes'
git merge master # und hier dann eventuelle Konflikte lösen
Der commit-hash oder tag ist dabei der Commit auf dessen Basis du deine Änderungen gemacht hast.

Und ganz wichtig: Ein Backup deines aktuellen Stands machen, falls etwas schief geht.

Wenn du willst, helfe ich dir dabei per TeamViewer o.Ä.
 
Zuletzt bearbeitet:
Ich habe es so verstanden, dass es eine Applikation gibt, die Laravel nutzt und er die Änderungen an der Applikation vorgenommen hat - nicht an Laravel.
 
Also, ich habe quasi eine in Laravel programmierte App von GitLab bezogen und auf meinem Server installiert.
Dann habe ich Anpassungen im Quellcode vorgenommen. Diese Anpassungen am Quellcode aber direkt auf
dem Server vorgenommen und nichts mit GitLab synchronisiert oder ähnliches. Es sind also irgendwo im
gesamtem Quellcode auf dem Server irgendwelche Anpassungen vorhanden.
 
@Bagbag: Dann sollten die Änderungen beim Framework Update aber erst recht nicht überschrieben werden. Das sind ja dann komplett unterschiedliche Dateien.

@Dsimon24: Um welche App gehts denn?
 
Es geht im die das Landingpage Framework von Nowsquare.com

Ich denke mal, wenn durch das Update einige Dateien geupdatet und somit überschrieben
werden, in denen ich Änderungen vorgenommen habe, dann werden diese ja verschwunden
sein, oder? Bei dem Update werden ja alte Files mit den neuen geupdateten Files überschrie-
ben, oder liege ich da jetzt falsch?
 
Laut Lizens darfst du in der Software Änderungen durchführen. Am besten schreibst du den Support an und fragst nach was die beste Möglichkeit für Modifikationen wäre. Die Softwarekosten sind eh ordentlich, die sollten dafür auch arbeiten. Falls sie dir nicht helfen möchten/können meldest du dich hier wieder.
 
Das habe ich schon versucht.
Da ich die Anpassungen schon im Code eingebunden habe und somit nichts in
Verweisen auf GitLab oder ähnlichen bezogen wird, können die mir nicht helfen.
 
Ok, welchen IDE verwendest du? Sowohl mit Sublime Text als auch Visual Studio Code kannst du Dateien vergleichen und auf Zeilennummer genau dir die Unterschiede ausgeben lassen.
PHPStorm bzw. WebStorm müssten das auch können, kosten aber was.

Und natürlich kann das GIT selbst auch. Versuch die von Bagbag vorgeschlagene Vorgehensweise, oder mit den oben genannten Editoren, was aber nicht sooo "schön" ist.
 
Zuletzt bearbeitet:
Bagbag schrieb:
Ich würde das branchen/forken einfach nachspielen:

Code:
git clone [url]
git checkout [commit-hash | tag]
git checkout -b [my-own-change-branch]
# Deine Version ins Repository kopieren und vorhandenes überschreiben
git add -A
git commit -m 'my own changes'
git merge master # und hier dann eventuelle Konflikte lösen
Der commit-hash oder tag ist dabei der Commit auf dessen Basis du deine Änderungen gemacht hast.

Ich habe jetzt mal versucht den Code mit meiner IDE (Visual Studio Code) zu vergleichen.
Es sind aber zu viele Anpassungen, das macht leider keinen wirklichen Sinn in der Form.

Aber mal eine Frage zu dem Beitrag von bagbag (s.o.):
Was genau hat es mit dem Commit auf sich?
Um das Beispiel nutzen zu können müssten die Änderungen doch dann in bspw.
GitLab eingepflegt werden, oder? Bringt mir das Beispiel auch etwas, wenn ich
die Modifikationen direkt in der Live-Umgebung durchgeführt habe?

VG, David
 
Git hat mit GitLab, GitHub oder sonstiges erstmal nichts zu tun, das sind nur Hilfsmittel, die über Git angesiedelt sind. Also nein, dafür musst du nix in GitLab o.Ä. einpflegen.

Der Commit hat den Sinn, dass Git wissen muss, von welchem Punkt (Common Ancestor) ab du Abgezweigt hast um dann nachfolgend die fehlenden Änderungen am Urspurngszweig (master) in deinen eigenen (foo) zu mergen.

git-merges-strat1-1024x606.png

Nur dass es bei dir nicht von foo nach master, sondern von master nach foo wäre - was aber praktisch keinen Unterschied macht. Und diese gemeinsame Basis (Common Ancestor) ist das, was du brauchst.

Wo du die Modifikationen durchführt hast ist Git völlig egal, du musst sie Git halt nur irgendwie mitteilen.

Ich biete es dir nochmal an: Wenn du willst, helfe ich dir dabei per TeamViewer o.Ä.
 
Zurück
Oben