Heim  >  Artikel  >  Entwicklungswerkzeuge  >  Was ist der Unterschied zwischen Commit und Push unter Git?

Was ist der Unterschied zwischen Commit und Push unter Git?

青灯夜游
青灯夜游Original
2021-11-26 14:21:4722200Durchsuche

Unterschied: 1. Der Befehl „git commit“ dient dazu, lokal geänderte Dateien an die lokale Bibliothek zu senden, während der Befehl „git push“ dazu dient, die neuesten Informationen in der lokalen Bibliothek an die Remote-Bibliothek zu senden; 2. „git commit“. „Befehl Die lokale Bibliothek wird bedient, während der Befehl „git push“ die Remote-Bibliothek betreibt.

Was ist der Unterschied zwischen Commit und Push unter Git?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Git-Version 2.30.0, Dell G3-Computer.

Der Unterschied zwischen „git commit“ und „git push“

git commit ist „Änderungen im Repository aufzeichnen“, also lokal geänderte Dateien an die lokale Bibliothek senden; Und git push dient zum „Aktualisieren von Remote-Referenzen und zugehörigen Objekten“, d. h. zum Senden der neuesten Informationen in der lokalen Bibliothek an die Remote-Bibliothek. git commit是"记录对存储库的更改",是将本地修改过的文件提交到本地库中;而git push是"更新远程引用和相关对象",是将本地库中的最新信息发送给远程库。

因此,git commit用于连接本地存储库,操作的是本地库;而git push用于与远程存储库交互,操作的是远程库。

下面是奥利弗·斯蒂尔的一张很好的图片,它解释了Git模型和命令:

Was ist der Unterschied zwischen Commit und Push unter Git?

<span style="font-size: 18px;"><strong>Git commit</strong></span>

git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,

 commit-id 在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里.

1、git commit -m ‘message’

-m 参数表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入message的,而是会调用一个编辑器一般是vim来让你输入这个message,

message即是我们用来简要说明这次提交的语句。

2、git commit -am ‘message’ -am等同于-a -m

-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区,

注意: 新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。

<span style="font-size: 18px;"><strong>Git push</strong></span>

在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,git 仓库的基本结构。

git push的一般形式为 git push ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名。第一个master是本地分支名,第二个master是远程分支名。

1、git push origin master

如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

2、git push origin :refs/for/master

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master

3、git push origin

如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支

4、git push

Daher wird git commit verwendet, um eine Verbindung zum lokalen Repository herzustellen und die lokale Bibliothek zu betreiben, und git push wird verwendet, um mit dem Remote-Repository zu interagieren und die Remote-Bibliothek zu betreiben .

Hier ist ein gutes Bild von Oliver Steele, das das Git-Modell und die Befehle erklärt:

Was ist der Unterschied zwischen Commit und Push unter Git?

🎜🎜Git commit🎜🎜🎜🎜git commit Senden Sie hauptsächlich die Änderungen im Staging-Bereich an die lokales Repository. Jedes Mal, wenn wir den Git-Commit-Befehl verwenden, generieren wir einen 40-stelligen Hash-Wert im lokalen Repository. Dieser Hash-Wert wird auch Commit-ID genannt und ist sehr nützlich, wenn die Version zurückgesetzt wird zu Ein Schnappschuss, der jederzeit über den kombinierten Befehl mit dem Parameter „git reset“ 🎜🎜1 hierher zurückgebracht werden kann Geben Sie die folgende „Nachricht“ direkt ein. Wenn Sie den Parameter -m nicht hinzufügen, können Sie die Nachricht nicht direkt eingeben. Stattdessen wird ein Editor, normalerweise vim, aufgerufen, damit Sie die Nachricht eingeben können Verwenden Sie diese Option, um diesen Beitrag kurz zu beschreiben. 🎜🎜2. git commit -am 'message' -am ist äquivalent zu -a -m🎜🎜-ein Parameter kann alle Dateien in den verfolgten Dateien, die geändert oder gelöscht werden, in die lokalen Lager übernehmen. Auch wenn sie nicht über git add zum Staging-Bereich hinzugefügt wurden, 🎜🎜Hinweis: Neu hinzugefügte Dateien (d. h. Dateien, die nicht vom Git-System verwaltet werden) können nicht an das lokale Warehouse übermittelt werden. 🎜🎜🎜🎜Git push🎜🎜🎜🎜Nachdem Sie den Befehl git commit verwendet haben, um die Änderungen aus dem Staging-Bereich in das lokale Repository zu übertragen, bleibt nur noch der letzte Schritt übrig Übertragen Sie die lokale Version. Der Zweig der Bibliothek wird in den entsprechenden Zweig auf dem Remote-Server verschoben. Wenn Sie die Struktur der Versionsbibliothek nicht kennen, können Sie meinen anderen Artikel, die Grundstruktur des Git-Warehouses, lesen. 🎜🎜 Die allgemeine Form von git push ist git push <remote host name> <local branch name></local></remote>, zum Beispiel git push origin master: refs/for/master, wodurch der lokale Master-Zweig zum entsprechenden Master-Zweig auf dem Remote-Host-Ursprung verschoben wird, wobei Origin der Name des Remote-Hosts ist. Der erste Master ist der Name der lokalen Zweigstelle und der zweite Master ist der Name der Remote-Zweigstelle. 🎜🎜1. git push origin master🎜🎜Wenn der Remote-Zweig wie oben weggelassen wird, bedeutet dies, dass der lokale Zweig mit einer Tracking-Beziehung an den Remote-Zweig gepusht wird (normalerweise haben beide den gleichen Namen). Wenn der Remote-Zweig nicht vorhanden ist, wird er erstellt🎜🎜2. git push origin: refs/for/master🎜🎜Wenn der Name des lokalen Zweigs weggelassen wird, bedeutet dies, dass der angegebene Remote-Zweig gelöscht wird Zweig, da dies dem Schieben eines leeren lokalen Zweigs zum Remote-Zweig entspricht Aktueller Zweig und Remote-Zweig, sowohl der lokale Zweig als auch der Remote-Zweig können weggelassen werden. Schieben Sie den aktuellen Zweig auf den entsprechenden Zweig des Ursprungshosts 🎜🎜4 git push🎜🎜Wenn der aktuelle Zweig Hat nur einen Remote-Zweig, kann der Hostname weggelassen werden, und in Form von Git Push können Sie Git Branch -r verwenden, um den Namen des Remote-Zweigs anzuzeigen🎜🎜Empfohlenes Lernen: „🎜Git Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Commit und Push unter Git?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn