webentwicklung-frage-antwort-db.com.de

Was sind die Unterschiede zwischen "git commit" und "git Push"?

In einem Git-Tutorial, das ich gerade durchsehe, wird git commit zum Speichern der vorgenommenen Änderungen verwendet. 

Wozu wird git Push verwendet?

782
ben

Grundsätzlich git commit "zeichnet Änderungen am Repository" auf, während git Push "entfernte Referenzen zusammen mit zugehörigen Objekten" aktualisiert. Der erste wird in Verbindung mit Ihrem lokalen Repository verwendet, während der letzte für die Interaktion mit einem Remote-Repository verwendet wird.

Hier ein schönes Bild von Oliver Steele , das das Git-Modell und die Befehle erklärt:

Git data transport commands

Lesen Sie mehr über git Push und git pull auf GitReady.com (dem Artikel, auf den ich zuerst verwiesen habe)

1466
tanascius

commit : Hinzufügen von Änderungen zum lokalen Repository 

Push : um den letzten Commit (s) an einen Remote-Server zu übertragen

177
TheHippo

Im Grunde setzt git commit Ihre Änderungen in Ihr lokales Repo ein, während git Push Ihre Änderungen an den Remote-Standort sendet.

52
markovuksanovic

git Push wird verwendet, um Commits, die Sie im lokalen Repository vorgenommen haben, zu einem Remote-Repository hinzuzufügen. Zusammen mit git pull können Personen damit zusammenarbeiten.

25

Da git ein verteiltes Versionskontrollsystem ist, besteht der Unterschied darin, dass Commit Änderungen an Ihrem lokalen Repository festlegt, wohingegen Push Push-Änderungen an ein Remote-Repo sendet.

24
Justin Ethier

git commit notieren Sie Ihre Änderungen im Repository " local ". 

git Push update das remote repository mit Ihren lokalen Änderungen.

12
Naresh

Commit : {Momentaufnahme | Änderungssatz | Historienaufzeichnung | Version | 'Speichern unter'} eines Repositorys. Git-Repository = Serie (Baum) von Commits (plus ein paar zusätzliche Dinge).

Local Repository: Repository auf Ihrem Computer.

Remote Repository: Repository auf einem Server (zB Github.com).

git commit: Fügen Sie dem local - Repository neue commit (letzte commit + staged - Modifikationen) hinzu.

git Push, git pull: Synchronisieren Sie ein local - Repository mit dem zugehörigen remote - Repository. Push - Änderungen von local in remote übernehmen, pull - Änderungen von remote in local übernehmen.

10
xged

Ich möchte nur die folgenden Punkte hinzufügen:

Sie können nicht pushen, bis Sie ein Commit ausführen, da wir git Push verwenden, um Commits, die in Ihrem lokalen Zweig gemacht wurden, in ein Remote-Repository zu pushen.

Der Befehl git Push benötigt zwei Argumente:

Ein entfernter Name, zum Beispiel Origin.__ Ein Zweigname, zum Beispiel master

Zum Beispiel:

git Push  <REMOTENAME> <BRANCHNAME> 
git Push  Origin       master
5
Faisal Shaikh

Drei Dinge zu beachten:

1) Arbeitsverzeichnis ----- Ordner, in dem sich unsere Code-Datei befindet

2) Lokales Repository ------ Dies ist in unserem System. Wenn wir zum ersten Mal machen COMMIT-Befehl, dann wird dieses lokale Repository erstellt. an der gleichen Stelle, wo sich unser Arbeitsverzeichnis befindet,
Checkit-Datei (.git) wird erstellt.
Danach, wann immer wir uns verpflichten, speichert dies die Änderungen, die wir in der Datei des Arbeitsverzeichnisses vornehmen, in lokales Repository (.git)

3) Remote Repository ----- Dies befindet sich außerhalb unseres Systems wie auf Servern irgendwo auf der Welt gefunden. wie github . Wenn wir den Push-Befehl erstellen, werden die Codes von unserem lokalen Repository wird in diesem Remote-Repository gespeichert

4
DEVINDER THAKUR

Eine sehr grobe Analogie: Wenn wir git commit mit dem Speichern einer bearbeiteten Datei vergleichen, würde git Push diese Datei an einen anderen Speicherort kopieren.

Bitte nehmen Sie diese Analogie nicht aus diesem Kontext heraus - Festschreiben und Pushing sind nichts anderes als das Speichern einer bearbeiteten Datei und das Kopieren. Dies sollte jedoch nur für Vergleiche gelten.

3
amn

git commit ist nichts anderes als das offizielle Speichern unserer Änderungen. Für jedes Commit geben wir eine Commit-Nachricht. Wenn wir mit Commits fertig sind, können wir es zur Remote verschieben, um unsere Änderungen global zu sehen

das bedeutet, dass wir zahlreiche Commits ausführen können, bevor wir auf Remote verschieben (wir können die Liste der Commits und auch die Nachrichten sehen)

und ich benutze git Push nur, wenn ich meine Änderung in Remote sehen wollte (Da werde ich nachsehen, ob mein Code in Jenkins funktioniert)

0
Sai Koti

Es ist einfacher, die Verwendung der git-Befehle add und commit zu verstehen, wenn Sie sich vorstellen, dass eine Protokolldatei in Ihrem Repository auf Github .. _ gespeichert wird.

---------------- 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

Normalerweise beginne ich meinen Tag mit einer git pull-Anfrage und beende ihn mit einer git Push-Anfrage. Also entspricht alles, was in einem Tagesprotokoll steht, dem, was zwischen ihnen geschieht. An jedem Tag gibt es eine oder mehrere logische Aufgaben, die ich abschließe, die einige Dateien ändern müssen. Die während dieser Aufgabe bearbeiteten Dateien werden in einem Index aufgeführt. 

Jede dieser Unteraufgaben (Aufgabe A und Aufgabe B hier) sind individuelle Commits. Der Befehl git add fügt Dateien zur Liste "Index der geänderten Dateien" hinzu. Dieser Vorgang wird auch als Inszenierung bezeichnet. In der Realität werden geänderte Dateien und die durchgeführten Änderungen aufgezeichnet. Mit dem Befehl git commit werden die Änderungen und die entsprechende Indexliste zusammen mit einer benutzerdefinierten Nachricht aufgezeichnet/abgeschlossen, die später als Referenz verwendet werden kann. 

Denken Sie daran, dass Sie immer nur die lokale Kopie Ihres Repositorys ändern und nicht die auf Github. Erst wenn Sie einen git Push ausführen, werden alle diese aufgezeichneten Änderungen zusammen mit den Indexdateien für jede Festschreibung im Haupt-Repository (auf Github) protokolliert.

Um den zweiten Eintrag in dieser imaginären Protokolldatei zu erhalten, hätte ich Folgendes getan:

git pull
# Make changes to File3 and File4
git add File3 File4
# Verify changes, run tests etc..
git commit -m 'Corrected typos'
git Push

Kurz gesagt, können Sie mit git add und git commit eine Änderung des Haupt-Repository in systematische logische Unteränderungen unterteilen. Wie aus anderen Antworten und Kommentaren hervorgeht, gibt es natürlich viel mehr Einsatzmöglichkeiten. Dies ist jedoch eine der häufigsten Anwendungen und ein treibendes Prinzip dafür, dass Git ein mehrstufiges Revisionskontrollsystem ist als andere populäre Systeme wie Svn.

0
Cibin Joseph