git下commit和push的區別是什么

區別:1、“git commit”命令是將本地修改過的文件提交到本地庫中,而“git push”命令是將本地庫中的最新信息發送給遠程庫;2、“git commit”命令操作的是本地庫,而“git push”命令操作的是遠程庫。

git下commit和push的區別是什么

本教程操作環境:Windows7系統、Git2.30.0版、Dell G3電腦。

git commit”和“git push”的區別

git commit是”記錄對存儲庫的更改”,是將本地修改過的文件提交到本地庫中;而git push是”更新遠程引用和相關對象”,是將本地庫中的最新信息發送給遠程庫。

因此,git commit用于連接本地存儲庫,操作的是本地庫;而git push用于與遠程存儲庫交互,操作的是遠程庫。

下面是奧利弗·斯蒂爾的一張很好的圖片,它解釋了Git模型和命令:

git下commit和push的區別是什么

Git commit

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系統管理的文件)是不能被提交到本地倉庫的。

Git push

在使用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

如果當前分支只有一個遠程分支,那么主機名都可以省略,形如 git push,可以使用git branch -r ,查看遠程的分支名

推薦學習:《Git教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享