關(guān)于git commit 命令解讀
1. git commit 介紹
git commit 命令用于將工作區(qū)內(nèi)容或暫存區(qū)內(nèi)容提交到版本庫(kù)
本文記錄 git commit 的常見用法,日常開發(fā)中,這幾個(gè)參數(shù)足夠使用了
# 將暫存區(qū)內(nèi)容提交到版本庫(kù), 進(jìn)入 vi 命令界面輸入提交信息 git commit # 將某些已被跟蹤的文件提交到版本庫(kù)(包含工作區(qū)和版本庫(kù)) git commit [file1] [file2] [...] # 將暫存區(qū)內(nèi)容提交到版本庫(kù), 無(wú)需進(jìn)入 vi 命令界面輸入提交信息 git commit -m [message] # 跳過(guò) git add, 將所有已被跟蹤的文件更改提交到版本庫(kù) git commit -am [message] # 使用一次新的commit, 替代上一次提交 # 如果代碼沒(méi)有任何新變化, 則用來(lái)改寫上一次commit的提交信息 git commit --amend -m [message]
2. git commit 使用
將所有暫存區(qū)文件提交到版本庫(kù),進(jìn)入 vi 命令頁(yè)面輸入提交信息
git commit
將所有已被 git 跟蹤的文件提交到版本庫(kù) (包含工作區(qū)和暫存區(qū)),進(jìn)入 vi 命令頁(yè)面輸入提交信息
git commit [file1] [file2] [...]
3. git commit -m
最常見的用法如下所示,如果沒(méi)有 -m 參數(shù),會(huì)進(jìn)入 vi 編輯模式,然后寫入提交信息
git commit -m [message]
將某些文件提交到版本庫(kù),可以跳過(guò) git add,但必須是已被跟蹤的文件
git commit [file1] [file2] -m [message]
4. git commit -am
如果需要將所有已被跟蹤的文件更改內(nèi)容,不想使用 git add,直接添加到版本庫(kù)
總結(jié): git commit -m 用于提交暫存區(qū)中的文件,git commit -am 用于提交已被跟蹤的文件
# 將已被跟蹤的文件提交的本地庫(kù)中 git commit -am <message>
commit 命令的 -am 參數(shù)等價(jià)于執(zhí)行了下面兩個(gè)命令
# 將已被跟蹤的文件提交到暫存區(qū) git add -u # 將暫存區(qū)中的文件提交到本地庫(kù) git commit -m <message>
5. git commit --amend
在日常開發(fā)中,難免會(huì)出現(xiàn)提交時(shí)備注信息打錯(cuò)了,想要修改它。
# 進(jìn)入 vi 編輯模式,最上方就是提交時(shí)填寫的備注信息 git commit --amend # 無(wú)需進(jìn)入 vi 編輯模式,修改上次提交記錄的備注信息 git commit --amend -m <message>
修改備注信息后,保存退出即可。
該操作會(huì)修改上次提交的索引 id
6. commit 多行提交信息
提交信息大多數(shù)人都是使用一行,有時(shí)改動(dòng)內(nèi)容會(huì)比較多,三言兩語(yǔ)很難表示清楚,可以使用換行更好的描述改動(dòng)內(nèi)容
多行提交信息內(nèi)容:第一行內(nèi)容代表是標(biāo)題,從第二行開始都是內(nèi)容,以下面多行提交信息為例:
fix:用戶模塊、購(gòu)物車模塊
- 1、修復(fù)用戶無(wú)法注冊(cè)功能
- 2、修復(fù)購(gòu)物車商品批量刪除報(bào)錯(cuò)問(wèn)題
- 3、修復(fù)積分商城支付成功后訂單狀態(tài)沒(méi)有改變問(wèn)題
下面是多行提交信息在當(dāng)前主流代碼托管平臺(tái)上的顯示效果
提交多行提交信息的方法:
方法 1(進(jìn)入 vi 模式輸入多行提交信息):
# 進(jìn)入 vi 命令界面 git commit # 按下 i,進(jìn)入 vi 的插入模式,將下面內(nèi)容粘貼進(jìn)入后,輸入 :wq 回車即可 fix:用戶模塊、購(gòu)物車模塊 1、修復(fù)用戶無(wú)法注冊(cè)功能 2、修復(fù)購(gòu)物車商品批量刪除報(bào)錯(cuò)問(wèn)題
方法 2(命令行輸入多行提交信息):
# 第一步:輸入第一行 git commit -m "fix:用戶模塊、購(gòu)物車模塊 # 第二步:按下回車輸入第二行、按下回車輸入第三行 ... 1、修復(fù)用戶無(wú)法注冊(cè)功能 # 第三步:多行提交信息輸入結(jié)束,尾部加上引號(hào),回車完成提交操作 2、修復(fù)購(gòu)物車商品批量刪除報(bào)錯(cuò)問(wèn)題"
方法 3(粘貼提前寫好的提交命令)【推薦】:
提前在文本編輯器中寫好準(zhǔn)備執(zhí)行的提交命令,復(fù)制粘貼到命令行中執(zhí)行即可,如下所示:
git commit -m "fix:用戶模塊、購(gòu)物車模塊
- 1、修復(fù)用戶無(wú)法注冊(cè)功能
- 2、修復(fù)購(gòu)物車商品批量刪除報(bào)錯(cuò)問(wèn)題
- 3、修復(fù)積分商城支付成功后訂單狀態(tài)沒(méi)有改變問(wèn)題
7. commit 背后到底發(fā)生了什么
創(chuàng)建一個(gè) git 倉(cāng)庫(kù),用于測(cè)試 git commit 背后做了什么操作
echo 'hello git' >> 1.txt echo 'hello svn' >> 2.txt git init git add . # 提交到版本庫(kù),注意 .git 目錄下的變化 git commit -m 'add 1.txt 2.txt'
一、執(zhí)行 git commit 后會(huì)在 .git/objects
目錄中下面生成兩個(gè)文件(一個(gè)是 commit 類型,一個(gè)是 tree 類型)
第二次執(zhí)行 commit 后,查看這次 commit id 的文件內(nèi)容,其中 parent
后面的值是上一次提交記錄的 commit id
當(dāng)文件存放在目錄中時(shí),tree 類型的 objects 文件中還會(huì)有一個(gè) tree(新增了一個(gè) user/4.txt 文件)
二、當(dāng)前在 master 分支,那么執(zhí)行 git commit 后會(huì)在 .git/refs/heads/master
中寫入最新提交記錄的 commit id
$ cat .git/refs/heads/master f08f522f3210eccbcff1d5e16c3da72435583f5e
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
老生常談?dòng)?jì)算機(jī)中的編碼問(wèn)題(必看篇)
下面小編就為大家?guī)?lái)一篇老生常談?dòng)?jì)算機(jī)中的編碼問(wèn)題(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07IE 瀏覽器安全級(jí)別詳情及區(qū)別小結(jié)
排查問(wèn)題時(shí),定位到可能和當(dāng)前瀏覽器的安全級(jí)別設(shè)置有關(guān),順便整理了下Windows 7下IE9安全級(jí)別的詳情內(nèi)容,及各安全級(jí)別下的默認(rèn)設(shè)置差異2016-01-01基于IntelliJ IDEA/Android Studio插件開發(fā)指南(推薦)
Android Studio是基于Intellij IDEA開發(fā)的,所以開發(fā)Android Studio的插件,其實(shí)就是開發(fā)IDEA的插件。根據(jù)官方推薦,使用IDEA IDE來(lái)開發(fā)IDEA插件,本文給大家介紹插件開發(fā)的基本流程,感興趣的朋友一起看看吧2021-10-10Win10環(huán)境下?編譯?和?運(yùn)行?x264的詳細(xì)過(guò)程
這篇文章主要介紹了Win10環(huán)境下編譯和運(yùn)行x264的詳細(xì)過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10HTTP長(zhǎng)連接與短連接使用方法及測(cè)試詳解
這篇文章主要介紹了HTTP長(zhǎng)連接與短連接使用方法及測(cè)試,需要的朋友可以參考下2020-02-02