Was sind die Unterschiede zwischen „git commit“ und „git push“?
-
02-10-2019 - |
Frage
In einem Git Tutorial werde ich durch, wird git commit
verwendet, um die Änderungen zu speichern, die Sie gemacht haben.
Was git push
wird dann verwendet?
Lösung
Im Grunde git commit
" Datensätze Änderungen in das Repository ", während git push
" aktualisiert Remote-Refs zusammen mit dem zugehörigen Objekten ". So ist die erste wird in Verbindung mit Ihrem lokalen Repository verwendet, während die letztere mit einer Remote-Repository zur Interaktion verwendet wird.
Hier ist ein schönes Bild von Oliver Steele , das erklärt, das git-Modell und die Befehle:
Lesen Sie mehr über git push
und git pull
auf GitReady.com (der Artikel, den ich zum ersten bezeichnet)
Andere Tipps
commit : Hinzufügen von Änderungen an der lokalen Repository
Push : die letzte commit (s) zu übertragen, zu einem Remote-Server
Nun, im Grunde Git puts Ihre Änderungen in Ihrem lokalen Repo begehen, während git push Ihre Änderungen an den entfernten Ort sendet.
Da git ein verteiltes Versionskontrollsystem ist, der Unterschied besteht darin, dass begehen Änderungen an Ihrem lokalen Repository begehen, während Push Änderungen vorantreiben wird zu einem Remote-Repo-up.
git push
verwendet wird Commits hinzuzufügen, den Sie auf dem lokalen Repository zu einem entfernten einem getan haben -. Zusammen mit git pull
, es erlaubt, dass Menschen zusammenarbeiten
Commit : Snapshot | Changeset | History_record | Version | 'Save-as' ein Endlager. Git-Repository = Serie (Baum) von Commits .
Lokal Repository. Repository auf Ihrem Computer
Remote Repository. Repository auf einem Server ( Github )
git commit
: Hinzufügen einer neuen commit (letzte commit + statt Änderungen) an die lokale Repository <. / p>
git push
, git pull
: Sync das lokal Repository mit dem damit verbundenen Remote Repository. push
- gelten Änderungen von lokaler in Remote , pull
-. gelten Änderungen von Remote in local
git commit
nehmen Sie Ihre Änderungen an dem lokal Repository.
git push
Update Remote Repository mit lokalen Änderungen.
Drei Dinge zu beachten:
1) Arbeitsverzeichnis ----- Ordner, in dem unsere Codes Datei vorhanden sind,
2) Local Repository ------ Dies ist in unserem System. Als wir zum ersten Mal machen
COMMIT Befehl dann diese lokale Repository erstellt wird.
an der gleichen Stelle, wo ist unser Arbeitsverzeichnis,
Checkit (.git) Datei erstellt bekommen.
Danach, wann immer wir begehen, speichert diese die
Änderungen, die wir in der Datei des Arbeitsverzeichnisses machen
lokale Repository (.git)
3) Remote Repository ----- Dies wird außerhalb unseres Systems liegt wie auf Servern wo jeder in der Welt. wie GitHub. Wenn wir PUSH Befehl dann Codes von unserem lokalen machen Repository auf diese Remote-Repository gespeichert bekommen
Ich will nur die folgenden Punkte hinzuzufügen:
Yon kann nicht schieben, bis Sie zu begehen, wie wir git push
verwenden Commits auf dem lokalen Zweig zu einer Remote-Repository gemacht zu drücken.
Der git push
Befehl nimmt zwei Argumente:
Ein Remote-Name, zum Beispiel origin
Ein Zweigname, zum Beispiel master
Zum Beispiel:
git push <REMOTENAME> <BRANCHNAME>
git push origin master
Eine sehr grobe Analogie:. Wenn wir git commit
zum Speichern einer editierten Datei vergleichen, dann würde git push
Kopieren sein, diese Datei an einem anderen Ort
Bitte nehmen Sie nicht diese Analogie von diesem Zusammenhang darauf hin - zu begehen und schieben ist nichts wie eine bearbeitete Datei speichern und kopiert es. Das heißt, es nur für Vergleiche willen halten sollte.
git commit ist nichts anderes als unsere Änderungen zu speichern für jedes offiziell verpflichten wir Botschaft geben verpflichten, wenn wir mit Commits fertig sind wir können es Push-to-Remote unsere Änderung global zu sehen
Das bedeutet, können wir zahlreiche Commits tun, bevor wir Remote-Push-to (wir können die Liste der Commits sehen geschah und die Nachrichten zu) git speichert jede begehen mit id begehen, die eine 40-stelligen Code
ist, und ich benutze git push nur, wenn ich wollte meine Veränderung sehen in Fern (Es nachdem ich prüfen, ob mein Code in jenkins gearbeitet)
Es ist einfacher, die Verwendung der git Befehl add
und commit
zu verstehen, wenn Sie eine Protokolldatei vorstellen, auf Github in Ihrem Repository gehalten wird.
Ein typisches Projekt der Protokolldatei für mich aussehen kann:
---------------- Day 1 --------------------
Message: Completed Task A
Index of files changed: File1, File2
Message: Completed Task B
Index of files changed: File2, File3
-------------------------------------------
---------------- Day 2 --------------------
Message: Corrected typos
Index of files changed: File3, File1
-------------------------------------------
...
...
...and so on
Ich habe heute in der Regel mit einem git pull
Anfrage starten und es mit einem git push
Anfrage beenden. Also alles in einem Datensatz entspricht Tag zu, was zwischen ihnen auftritt. Bei jedem Tag gibt es ein oder mehr logische Aufgaben , dass ich vollständig die ein paar Dateien erfordern ändern. Die Dateien, die während dieser Aufgabe bearbeitet werden in einem Index aufgelistet.
Jeder dieser Teilaufgaben (Aufgabe A und Aufgabe B hier) sind einzelne Commits. Der git add
Befehl fügt Dateien in den 'Index of Files Changed' -Liste. Dieser Prozess wird auch Inszenierung und in Wirklichkeit Aufzeichnungen geänderte Dateien aufgerufen und die Änderungen durchgeführt. Die git commit
Befehlssätze / schließen die Änderungen und die entsprechende Indexliste zusammen mit einer kundenspezifischen Nachricht, die für eine spätere Referenz verwendet werden können.
Denken Sie daran, dass Sie nur noch die lokale Kopie des Repository zu ändern und nicht die auf Github. Danach wird nur, wenn Sie tun, um eine git push
tut all diesen aufgezeichneten Änderungen, zusammen mit Ihren Index-Dateien für jede verpflichten, auf dem Haupt-Repository protokolliert wird (auf Github).
Als Beispiel des zweiten Eintrag in dieser imaginären Protokolldatei zu erhalten, würde ich getan hat:
git pull
# Make changes to File3 and File4
git add File3 File4
# Verify changes, run tests etc..
git commit -m 'Corrected typos'
git push
Auf den Punkt gebracht, git add
und git commit
können Sie eine Änderung brechen auf das Haupt-Repository in systematische logische Unter Änderungen. Wie andere Antworten und Kommentare aus haben darauf gibt es natürlich ihnen viele weitere Anwendungen. Dies ist jedoch eine der häufigsten Verwendungen und ein Antriebsprinzip hinter Git ein mehrstufiges Revisionskontrollsystem im Gegensatz zu anderen populären wie Svn zu sein.
Push : Drücken Sie den Zweig zu entfernten, zusammen mit den erforderlichen Commits und Objekte. Schafft namens Zweig in der Remote-Repo, wenn es nicht existiert.
Commit : Nehmen Sie Ihre Änderungen an der lokalen Repository, Commit des Snapshot in Szene gesetzt. Es verfolgt die zwischen den einzelnen Änderungen zu begehen.
Wenn Sie commit , um die Änderungen, speichern Sie die Änderungen als ein einziger logischer Satz in Ihrem lokalen Repository. Sie können ohne Druck dies mehrere Male tun. Bis sie gedrückt werden, sie lassen Sie Ihr lokales Repository das Remote-Repository bedeutet nicht, diese Sätze von Änderungen haben noch so, wenn andere Leute aus dem Remote-Repository ziehen, wird Ihre Commits nicht gezogen werden.
Wenn Sie Push , alle Commits in Ihrem lokalen Repository hergestellt werden die Remote-Repository übertragen werden, so dass, wenn andere Entwickler, die diesen Remote-Repository Pull teilen, werden sie Ihre Änderungen übertragen haben ihre lokale Repositories.
in Laiebezeichnungen, git commit
ist der Schritt vor git push
Sie sie in dieser Reihenfolge, um erfolgreich git Ihre Datei auf Github laufen.
Nun, Git im Grunde legt, um die Änderungen in Ihrem lokalen Repo zu begehen, während git push Ihre Änderungen an den entfernten Ort sendet. Da git ein verteiltes Versionskontrollsystem ist, ist der Unterschied, dass begehen Änderungen an Ihrem lokalen Repository begehen, während Push Änderungen Push-up wird auf eine Remote-Repo
source Google
http://gitref.org/basic/ dieser Link auch sehr nützlich sein,
git commit
ist, die Dateien zu begehen, die im lokalen Repo inszeniert. git push
ist vorspulen des Zweiges der lokalen Seite Hauptzusammenführung mit dem entfernten Master-Zweig. Aber die Zusammenführung wird nicht immer Erfolg. Wenn Ablehnung angezeigt wird, müssen Sie pull
so dass Sie eine erfolgreiche git push
machen kann.