0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

git多個commit合并成一個commit

嵌入式那些事 ? 來源:嵌入式那些事 ? 2023-05-06 15:49 ? 次閱讀

在使用git做版本管理器的時候,有時候需要將多個commit合并成一個commit,因此這里記錄下具體的操作方法,便于查閱。

下面的例子,將msg B,msg C,msg D這3個commit合并成1個commit,具體步驟如下:

1、查看當(dāng)前的提交信息

執(zhí)行命令:git log,可以查看當(dāng)前的一些提交信息,這些提交按照時間先后順序為:msg A,msg B,msg C,msg D。

912636be-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_165510

2、合并多個commit

執(zhí)行命令:git rebase -i commit_id,這里的commit_id是待合并的多個commit之前的那個commit ID,這里也就是msg A的commit ID。

在我這里也就是執(zhí)行命令:git rebase -i d1089921b2714211d1b1652cf0864e2c3f7101a4,執(zhí)行完命令后就進(jìn)入到vi的編輯模式:

9147b2f8-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_173903

9174ccd4-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_174651

上圖中,pick表示使用當(dāng)前的commit,squash表示這個commit會被合并到前一個commit。

我們這里需要將msg C,msg D合并到msg B中,因為msg B是最靠近msg A的,因此這里選擇將msg C,msg D合并到msg B中。

在鍵盤上敲i鍵進(jìn)入insert模式,然后將msg C,msg D前面的pick修改成squash:

9194c692-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_180541

修改完成后,按esc鍵,冒號,輸入wq進(jìn)行保存。之后會繼續(xù)跳轉(zhuǎn)到commit message 的編輯界面:

91b691f0-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_180906

將上圖中畫線的內(nèi)容刪掉或者注釋,然后寫一個新的commit信息作為這3個commit的log信息,我這里的新的信息為:msg B, msg C, msg D,如下圖所示:

91ddd6f2-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_181151

然后保存退出,就會跳轉(zhuǎn)到最初的命令界面:

91f7afbe-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_181335

Successfully表示操作成功。

3、查看新的commit信息

執(zhí)行命令:git log,查看當(dāng)前的commit信息:

9215fd8e-ebe1-11ed-90ce-dac502259ad0.png

2019-11-25_181700

從上圖中,可以看到,我這里已經(jīng)將msg B,msg C,msg D這3個commit合并成1個新的commit。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 管理器
    +關(guān)注

    關(guān)注

    0

    文章

    246

    瀏覽量

    18511
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    684

    瀏覽量

    22027
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    200

    瀏覽量

    15765

原文標(biāo)題:git多個commit合并成一個commit

文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何通過labview把三多個html文件合并成文件?

    如何通過labview把三多個html文件合并成文件?
    發(fā)表于 11-16 09:48

    git shell 常用命令

    刪除本地庫developgit checkout -b dev 建立新的本地分支devgit merge origin/dev 將分支dev與當(dāng)前分支進(jìn)行合并git checko
    發(fā)表于 04-16 15:57

    開發(fā)者必備的8 git 小技巧

    個分支上進(jìn)行了commit和push。當(dāng)你pull的時候,git會創(chuàng)建commit合并你的
    發(fā)表于 07-05 10:30

    Git 常用命令大全

    合并的分支是無法刪除的。如果想強(qiáng)制刪除分支,可以使用-D選項合并分支:$ git merge [name] ----將名稱為[name]
    發(fā)表于 10-11 17:23

    git簡單使用(

    倉庫,以及如何進(jìn)行分支控制:1.創(chuàng)建文件夾mkdir git-study2.初始化倉庫git init3.查看下當(dāng)前分支git bran
    發(fā)表于 02-17 16:18

    Git工程實(shí)踐()巧用commit message

    摘要: 大家都知道所有的版本控制系統(tǒng)比如svn,git等設(shè)計的核心價值之就是為了讓代碼變更有跡可循,而commit mesage的價值在于讓有跡可循的代碼對人類更加友好,通常
    發(fā)表于 05-03 17:30

    PDF文檔合并軟件,可以將多個PDF文件合并成總的PDF文件

    PDF文檔合并軟件,可以將多個PDF文件合并成總的PDF文件
    發(fā)表于 09-25 23:35

    開發(fā)人員在使用Git時幾種常見錯誤

    如果你想把分支的修改合并到當(dāng)前分支,你可以用git rebase。它和git merge的區(qū)別是merge有
    的頭像 發(fā)表于 11-08 09:17 ?2797次閱讀

    教你20分鐘搞懂Git

    在上述代碼中,在提交時你需要提供提交的描述,而且你可以通過echo "first commit"提供提交描述。git commit-tree命令會根據(jù)元數(shù)據(jù)以及目錄樹生成
    的頭像 發(fā)表于 12-12 09:48 ?3114次閱讀

    45日常用git合代碼的經(jīng)典操作場景

    如果你用 git commit -a 提交了次變化(changes),而你又不確定到底這次提交了哪些內(nèi)容。你就可以用下面的命令顯示當(dāng)前HEAD上的最近次的提交(
    的頭像 發(fā)表于 04-13 10:39 ?951次閱讀

    commit-comments自動添加評論系統(tǒng)

    ./oschina_soft/commit-comments.zip
    發(fā)表于 05-27 10:51 ?2次下載
    <b class='flag-5'>commit</b>-comments自動添加評論系統(tǒng)

    45Git經(jīng)典操作場景

    如果你用 git commit -a 提交了次變化(changes),而你又不確定到底這次提交了哪些內(nèi)容。你就可以用下面的命令顯示當(dāng)前HEAD上的最近次的提交(
    的頭像 發(fā)表于 01-06 15:29 ?594次閱讀

    Git是怎樣的系統(tǒng) Git的工作原理

    執(zhí)行完成了 git commit 命令,究竟做了什么呢? Git 倉庫中的提交記錄保存的是你的目錄下所有文件的快照,就像是把整個目錄復(fù)制,然后再粘貼樣,但比復(fù)制粘貼優(yōu)雅許多!
    發(fā)表于 02-22 10:41 ?322次閱讀

    git rebase和git merge的區(qū)別

    合并到當(dāng)前分支 他們的 「原理」 如下: 假設(shè)你現(xiàn)在基于遠(yuǎn)程分支"origin",創(chuàng)建叫"mywork"的分支。 ? $?git?checkout?-b?mywork?origin
    的頭像 發(fā)表于 07-05 09:54 ?643次閱讀
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的區(qū)別

    45Git經(jīng)典操作場景,助你臂之力

    如果你用 git commit -a 提交了次變化(changes),而你又不確定到底這次提交了哪些內(nèi)容。你就可以用下面的命令顯示當(dāng)前HEAD上的最近次的提交(
    的頭像 發(fā)表于 09-23 11:11 ?593次閱讀