git 第二次提交 git(五 合併提交命令)

2021-10-16 14:25:11 字數 1583 閱讀 7971

場景:本地做了四次提交,想把第 2、3、4 次提交合併,只保留第二次提交的commit message

編輯器上的git記錄.png

解決方案:

1、git reflog 檢視所有的提交記錄

p.s. git reflog 可以檢視所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作);git log 命令可以顯示所有提交過的版本資訊,看不到刪除的記錄。所以買後悔藥回退刪除記錄的時候,可以用 git reflog

命令列檢視提交記錄.png

上面的展示了,一共四次提交,按照時間倒序排列分別是 第 4、3、2、1次提交

2、git rebase -i 「最新的乙個想保留的 commit」

意思是,我想合併2、3、4,那麼最新乙個想保留的 commit 就是 第一次 commit,他的hash值為 ae9c811,輸入下列命令並回車

git rebase -i ae9c811

或者# 即將可以編輯的資訊不包括起點,包括終點,起點比終點距離現在時間久遠

git rebase -i [startpoint] [endpoint]

rebase指定位置

3、選擇要合併的 commit :上述步驟完成後會跳出下圖介面

注意這個時候的順序:最近一次提交在最下面

選擇合併的commit及其指令.png

前面三行是我們需要操作的三個 commit,每行最前面的是對該 commit 操作的 command。關於每個 command 具體做什麼,下面的注釋寫得非常清楚。為了完成我們的需求,我們可以關注到這兩個命令:

# 使用該 commit,但會被合併到前乙個 commit 當中

s, squash = use commit, but meld into previous commit

# 就像 squash 那樣,但會拋棄這個 commit 的 commit message

f, fixup = like "squash", but discard this commit's log message

我們可以選擇把第 3、4 次的commit message合併到第二次上面,修改command如下,並儲存退出:

修改command.png

4、編輯合併 commit 的 commit message

上述步驟完成後,會跳出如下介面

編輯commitmessage.png

通過下面的注釋,我們可以知道,這裡其實就是乙個編寫 commit message 的介面,帶 # 的行會被忽略掉,其餘的行就會作為我們的新 commit message,於是,我們編輯一下,儲存退出

編輯完成.png

5、檢查:使用git log檢查

git log

結果如下:

log結果.png

注意,使用git reflog仍可以檢視最初的命令:

reflog結果.png

兩者的區別在於,git log只顯示保留的,git reflog可以顯示 reset 和 rebase、刪除的版本

編譯器的視覺化git工具中的展示:

image.png

這個時候再push,提交記錄上就非常好看了

請注意:

git 第二次提交 第二次作業 git的基本操作

1 配置使用者名稱命令 git config global user.name xbk 2 配置郵箱命令 git config global user.email 1024669884 qq.com 二 建立本地版本倉庫 1 選擇乙個合適的地方,新建乙個空的資料夾。2 通過git init命令把這個...

Git建立子分支,合併分支並提交

git合併分支後,需要將子分支提交到git倉庫,這個時候就需要單獨提交子分支,其步驟如下 1.先建立子分支,幷包含最新當前分支下的修改資料 git checkout b sonbranch 2.將新分支內容全部提交 git add git commit m 完成開發 3.在碼雲建立乙個子分支 git...

git修改提交,合併提交的基本方法

直接對最上面的commit 資訊做修改 完成後 儲存退出即可 git rebase i 某次的commit之前 r 為修改commit資訊 僅需要將 第一行的pick替換成 r 之後儲存退出 git 會自動彈框到 直接對commit資訊修改儲存即可 使用rebase 變基到 最早的commit之前 ...