2016-06-20 5 views
1

Ich habe einen Open-Source-PHP-Code von GitHub heruntergeladen, dann habe ich lokal einige Änderungen daran vorgenommen.Wie aktualisiert man eine modifizierte Version eines Open-Source-Codes?

Jetzt wird der Hauptquellcode in GitHub aktualisiert.

Ich möchte wissen, was ist der einfachste Weg, um meinen Code zu aktualisieren, und behalten Sie auch die Änderungen, die ich vorgenommen habe. (Da diese Updates weiterhin stattfinden werden, möchte ich eine dauerhafte Lösung und Industriestandards dafür kennen)

Ich möchte meinen Code in GitHub nicht veröffentlichen.

EDIT: Der Code wurde als ZIP-Datei heruntergeladen, und nicht als Git-Klon.

+1

Wie haben Sie den Code von Github heruntergeladen? – Progrock

+0

Ich habe Zip-Datei heruntergeladen. leider kein Git Klon.aber ich würde auch gerne wissen, was der richtige Weg ist, es in Zukunft zu tun. – cybergeek654

Antwort

4

Wenn Sie geklont den Code aus GitHub auf dem lokalen Computer, dann die Original-Repository noch als Fern eingerichtet werden soll, und Sie sollen die Änderungen einfach git pull und kombinieren sie in Ihrem lokalen Code in der Lage sein.

More info on git pull


Wenn Sie den Code als zip-Archiv heruntergeladen und machte Ihre Änderungen zu, dass, es wird viel schwieriger sein. Der einfachste Weg, Ihren lokalen Code zu aktualisieren, wird wahrscheinlich darin bestehen, die Änderungen von Hand in Ihre lokale Codebasis zu übernehmen.

+1

... und Sie könnten auch über [git merge conflicts] (https://help.github.com/articles/resolving-a-merge-conflict- from- the- command-line /) lesen. Sehr wahrscheinlich gibt es Konflikte, wenn Sie den Code lokal ändern und dann neue Änderungen aus dem Haupt-Repository ziehen. –

1

Mit etwas Glück erlauben die Bibliotheksautoren Anpassung durch öffentliche Eigenschaften oder Methoden oder durch Klassenerweiterung oder eine andere Methode.

Ich habe eine PHP-Bibliothek, die ein wenig Personalisierung erfordert, und ich kann dies durch öffentliche Eigenschaften/Methoden tun.

Dies ist ein sehr einfaches Beispiel:

<?php 

class Foo { 
    public $bar = 'big'; 
    public $baz = 'fat'; 
    public $bat = 'mamma'; 
} 

Wenn Sie das Attribut $ bat wollten Sie einen anderen Wert zu haben, dies tun könnte:

$foo  = new Foo; 
$foo->bat = 'man'; 

Oder Sie könnten die ursprüngliche Klasse erweitern:

class MyFoo extends Foo 
{ 
    public $bat = 'man'; 
} 

$foo = new MyFoo; 

Beide Methoden ermöglichen möglicherweise die Aktualisierung der ursprünglichen Klasse, ohne dass dies Auswirkungen hat Code eingeben. Versuchen Sie, die Bearbeitung der Originalbibliothek möglichst zu vermeiden.

Wenn Sie den Bibliothekscode bearbeiten müssen. Und die Bibliothek verwendet Git für die Versionskontrolle, Sie könnten den Originalcode (Git Clone) klonen und einen neuen Zweig für Ihre Änderungen erstellen. Und notieren Sie diese Änderungen (Commit) und wenden Sie diese Änderungen bei Bedarf in einer aktualisierten Codebasis an. Git macht das etwas einfacher als das Verwalten und Anwenden eigener Änderungen (Diffs/Patches) auf den Bibliothekscode.

Wenn Sie die Version der Bibliothek identifizieren können, mit der Sie begonnen haben (vielleicht war es eine markierte Version) und Sie können den Code wie zuvor abrufen, können Sie diesen mit Ihrem geänderten Code vergleichen und eine Änderung erstellen setzen (oder setzt). Sie können möglicherweise eine Version der Bibliothek auschecken, wie sie vor dem Start war, eine neue Verzweigung erstellen (von dort), Ihre Änderungen übernehmen und versuchen, sie wieder in eine aktualisierte Bibliothek einzubinden.

+0

Tnx @Progrock, ich werde die Git-Version der Bibliothek erhalten, wie sie vorher war, und einen neuen Zweig erstellen. Gibt es eine einfache Möglichkeit, meinen modifizierten Code damit zu vergleichen und eine Änderungsmenge zu erstellen? Gibt es dafür einen Git-Befehl? Ich benutze Atlassian SourceTree auf Mac. Und nachdem ich die Änderungen eingestellt habe, füge ich sie zur neuesten Version zusammen, richtig? – cybergeek654

+1

Vereinfachend, wenn Sie eine Verzweigung von einem bestimmten Snapshot erstellen. Kopieren Sie Ihre geänderten Dateien über Ihre ausgecheckte Filiale. Dann führe einen 'git status' aus. Git gibt Ihnen eine Zusammenfassung der Änderungen. Sie können sie dann hinzufügen und committen (stückweise, wenn Sie möchten). Ich würde mich mit Git vertraut machen, es gibt einige großartige Tutorials. – Progrock

+1

Ein Diff-Tool, mit dem Sie Dateien vergleichen können. Git hat sein eigenes: 'git diff'. – Progrock

Verwandte Themen