git的add、commit、push的詳細(xì)介紹

簡單的代碼提交流程

  1. git status 查看工作區(qū)代碼相對于暫存區(qū)的差別
  2. git add . 將當(dāng)前目錄下修改的所有代碼從工作區(qū)添加到暫存區(qū) . 代表當(dāng)前目錄
  3. git commit -m ‘注釋’ 將緩存區(qū)內(nèi)容添加到本地倉庫
  4. git pull origin master先將遠(yuǎn)程倉庫master中的信息同步到本地倉庫master中
  5. git push origin master 將本地版本庫推送到遠(yuǎn)程服務(wù)器,
    origin是遠(yuǎn)程主機(jī),master表示是遠(yuǎn)程服務(wù)器上的master分支和本地分支重名的簡寫,分支名是可以修改的

Git add

git add [參數(shù)] <路徑> 作用就是將我們需要提交的代碼從工作區(qū)添加到暫存區(qū),就是告訴git系統(tǒng),我們要提交哪些文件,之后就可以使用git commit命令進(jìn)行提交了。
?為了方便下面都用 . 來標(biāo)識路徑, . 表示當(dāng)前目錄,路徑可以修改,下列操作的作用范圍都在版本庫之內(nèi)。

  1. git add .
    不加參數(shù)默認(rèn)為將修改操作的文件和未跟蹤新添加的文件添加到git系統(tǒng)的暫存區(qū),注意不包括刪除
  2. git add -u .
    -u 表示將已跟蹤文件中的修改和刪除的文件添加到暫存區(qū),不包括新增加的文件,注意這些被刪除的文件被加入到暫存區(qū)再被提交并推送到服務(wù)器的版本庫之后這個(gè)文件就會(huì)從git系統(tǒng)中消失了。
  3. git add -A .
    -A 表示將所有的已跟蹤的文件的修改與刪除和新增的未跟蹤的文件都添加到暫存區(qū)。

Git commit

git commit 主要是將暫存區(qū)里的改動(dòng)給提交到本地的版本庫。每次使用git commit 命令我們都會(huì)在本地版本庫生成一個(gè)40位的哈希值,這個(gè)哈希值也叫commit-id,
?commit-id 在版本回退的時(shí)候是非常有用的,它相當(dāng)于一個(gè)快照,可以在未來的任何時(shí)候通過與git reset的組合命令回到這里.

  1. git commit -m ‘message’
    -m 參數(shù)表示可以直接輸入后面的“message”,如果不加 -m參數(shù),那么是不能直接輸入message的,而是會(huì)調(diào)用一個(gè)編輯器一般是vim來讓你輸入這個(gè)message,
    message即是我們用來簡要說明這次提交的語句。
  2. git commit -am ‘message’ -am等同于-a -m
    -a參數(shù)可以將所有已跟蹤文件中的執(zhí)行修改或刪除操作的文件都提交到本地倉庫,即使它們沒有經(jīng)過git add添加到暫存區(qū),
    注意: 新加的文件(即沒有被git系統(tǒng)管理的文件)是不能被提交到本地倉庫的。

Git push

在使用git commit命令將修改從暫存區(qū)提交到本地版本庫后,只剩下最后一步將本地版本庫的分支推送到遠(yuǎn)程服務(wù)器上對應(yīng)的分支了,如果不清楚版本庫的構(gòu)成,可以查看我的另一篇,git 倉庫的基本結(jié)構(gòu)。
?git push的一般形式為 git push <遠(yuǎn)程主機(jī)名> <本地分支名> <遠(yuǎn)程分支名> ,例如 git push origin master:refs/for/master ,即是將本地的master分支推送到遠(yuǎn)程主機(jī)origin上的對應(yīng)master分支, origin 是遠(yuǎn)程主機(jī)名。第一個(gè)master是本地分支名,第二個(gè)master是遠(yuǎn)程分支名。

  1. git push origin master
    如果遠(yuǎn)程分支被省略,如上則表示將本地分支推送到與之存在追蹤關(guān)系的遠(yuǎn)程分支(通常兩者同名),如果該遠(yuǎn)程分支不存在,則會(huì)被新建
  2. git push origin :refs/for/master
    如果省略本地分支名,則表示刪除指定的遠(yuǎn)程分支,因?yàn)檫@等同于推送一個(gè)空的本地分支到遠(yuǎn)程分支,等同于 git push origin –delete master
  3. git push origin
    如果當(dāng)前分支與遠(yuǎn)程分支存在追蹤關(guān)系,則本地分支和遠(yuǎn)程分支都可以省略,將當(dāng)前分支推送到origin主機(jī)的對應(yīng)分支
  4. git push
    如果當(dāng)前分支只有一個(gè)遠(yuǎn)程分支,那么主機(jī)名都可以省略,形如 git push,可以使用git branch -r ,查看遠(yuǎn)程的分支名

關(guān)于 refs/for:
refs/for 的意義在于我們提交代碼到服務(wù)器之后是需要經(jīng)過code review 之后才能進(jìn)行merge的,而refs/heads 不需要

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,200評論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 4,154評論 0 11
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,833評論 4 54
  • 一個(gè)朋友做了間箱庭工作室,建議我?guī)Ю洗笕ピ囋嚕乙蚕M苋ピ囈辉?。但是我很忐忑,不知道他?huì)不會(huì)拒絕,我特...
    堯書吧安閱讀 1,250評論 2 1
  • 回顧大學(xué)生活,那輛破舊的自行車一直與我相伴。 這是一輛直把的、有杠的、用50元錢在二手市場上購買的自行車。在當(dāng)時(shí),...
    侯立元閱讀 465評論 1 0

友情鏈接更多精彩內(nèi)容