柚子快報(bào)邀請(qǐng)碼778899分享:git commit 命令詳解
柚子快報(bào)邀請(qǐng)碼778899分享:git commit 命令詳解
文章目錄
前言1. git commit 介紹2. git commit 使用3. git commit -m4. git commit -am5. git commit --amend6. commit 多行提交信息7. commit 背后到底發(fā)生了什么
前言
CSDN 只用來(lái)做博客主站文章的轉(zhuǎn)載
博客主站:https://www.itqaq.com
下面地址路徑可能會(huì)發(fā)生變化,進(jìn)入博客主站搜索 git commit 即可
本文原地址:https://www.itqaq.com/index/348.html
1. git commit 介紹
git commit 命令用于將工作區(qū)內(nèi)容或暫存區(qū)內(nèi)容提交到版本庫(kù)
本文記錄 git commit 的常見(jiàn)用法,日常開(kāi)發(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)改寫(xiě)上一次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
最常見(jiàn)的用法如下所示,如果沒(méi)有 -m 參數(shù),會(huì)進(jìn)入 vi 編輯模式,然后寫(xiě)入提交信息
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
commit 命令的 -am 參數(shù)等價(jià)于執(zhí)行了下面兩個(gè)命令
# 將已被跟蹤的文件提交到暫存區(qū)
git add -u
# 將暫存區(qū)中的文件提交到本地庫(kù)
git commit -m
5. git commit --amend
在日常開(kāi)發(fā)中,難免會(huì)出現(xiàn)提交時(shí)備注信息打錯(cuò)了,想要修改它。
# 進(jìn)入 vi 編輯模式,最上方就是提交時(shí)填寫(xiě)的備注信息
git commit --amend
# 無(wú)需進(jìn)入 vi 編輯模式,修改上次提交記錄的備注信息
git commit --amend -m
修改備注信息后,保存退出即可。該操作會(huì)修改上次提交的索引 id
6. commit 多行提交信息
提交信息大多數(shù)人都是使用一行,有時(shí)改動(dòng)內(nèi)容會(huì)比較多,三言兩語(yǔ)很難表示清楚,可以使用換行更好的描述改動(dòng)內(nèi)容
多行提交信息內(nèi)容:第一行內(nèi)容代表是標(biāo)題,從第二行開(kāi)始都是內(nèi)容,以下面多行提交信息為例:
fix:用戶模塊、購(gòu)物車(chē)模塊
1、修復(fù)用戶無(wú)法注冊(cè)功能
2、修復(fù)購(gòu)物車(chē)商品批量刪除報(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 回車(chē)即可
fix:用戶模塊、購(gòu)物車(chē)模塊
1、修復(fù)用戶無(wú)法注冊(cè)功能
2、修復(fù)購(gòu)物車(chē)商品批量刪除報(bào)錯(cuò)問(wèn)題
方法 2(命令行輸入多行提交信息):
# 第一步:輸入第一行
git commit -m "fix:用戶模塊、購(gòu)物車(chē)模塊
# 第二步:按下回車(chē)輸入第二行、按下回車(chē)輸入第三行 ...
1、修復(fù)用戶無(wú)法注冊(cè)功能
# 第三步:多行提交信息輸入結(jié)束,尾部加上引號(hào),回車(chē)完成提交操作
2、修復(fù)購(gòu)物車(chē)商品批量刪除報(bào)錯(cuò)問(wèn)題"
方法 3(粘貼提前寫(xiě)好的提交命令)【推薦】:
提前在文本編輯器中寫(xiě)好準(zhǔn)備執(zhí)行的提交命令,復(fù)制粘貼到命令行中執(zhí)行即可,如下所示:
git commit -m "fix:用戶模塊、購(gòu)物車(chē)模塊
1、修復(fù)用戶無(wú)法注冊(cè)功能
2、修復(fù)購(gòu)物車(chē)商品批量刪除報(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 類(lèi)型,一個(gè)是 tree 類(lèi)型)
第二次執(zhí)行 commit 后,查看這次 commit id 的文件內(nèi)容,其中 parent 后面的值是上一次提交記錄的 commit id
當(dāng)文件存放在目錄中時(shí),tree 類(lèi)型的 objects 文件中還會(huì)有一個(gè) tree(新增了一個(gè) user/4.txt 文件)
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-qa7bBtsh-1673764231116)(null)]
二、當(dāng)前在 master 分支,那么執(zhí)行 git commit 后會(huì)在 .git/refs/heads/master 中寫(xiě)入最新提交記錄的 commit id
$ cat .git/refs/heads/master
f08f522f3210eccbcff1d5e16c3da72435583f5e
柚子快報(bào)邀請(qǐng)碼778899分享:git commit 命令詳解
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。