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