日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈git rebase命令 -- git修改历史提交信息

發布時間:2023/12/14 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈git rebase命令 -- git修改历史提交信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

淺談git rebase命令

如果你只想修改git log命令打印到終端上的最后一個提交信息,那么使用git commit --amend命令直接修改就好。

如果你還想合并最近的某幾個提交為一個提交,并重新為這個化多為一的新的提交信息的話,那么就要考慮使用git rebase -i HEAD~n命令,注意其中n是一個具體的數字,即你一共想合并的提交的個數。

例如如果n為3,則你會得到這樣一個界面

根據下面的提示,修改上面那三個pick,注意如果是squash的話,第一個pick是不可以被修改為sqush的,因為第一個指的是,剩下兩個提交是要合并到第一個提交里的,把第一pick也改為squash的話,那么git就不知道該把這三個往哪合并了。
注意上面這個界面只是用來讓你修改pick的,其他的東西不需要動。

pick,指啥也不變(我的理解)
reword,指不合并,但是可以直接修改后面的提交信息,這里的直接修改不是在這個界面修改,這個界面只用來讓你修改pick的,其他的不要動。將第三行的pick修改為reword之后,保存并退出,git會直接創建一個vim會話窗口,此時你就可以修改提交信息了。

這里直接修改第一行的提交信息就行,其他的也不用動,然后保存并推出就完成了reword的功能。
edit,這個命令看似跟reword差不多,但是不能隨便用,因為如果你把第二行的pick改為edit,那么這里的意思就是丟棄第三行的提交,直接修改第二行的提交信息,保存并退出后,需要手動使用git commit --amend去把修改窗口調用出來,然后才能修改提交信息;如果你后悔了,那么可以使用git rebase --abort放棄本次修改。這里的git rebase --continue的意思是,如果你不使用git commit --amend修改提交信息,也不用git rebase --abort放棄本次操作,那就默認不修改提交信息并完成本次操作。

所以這個命令有一定危險性,沒想清楚不要隨便用。


squash,指的是將當前提交合并至上一個提交,注意因為是合并至上一個提交(范圍在出現在這個界面的),所以第一行是沒有上一個提交的,所以無法將第一行的pick改為squash。修改完pick后就可以保存并退出,git會自動彈出修改提交信息的窗口,把本來的多個提交信息修改為一個就可以了。(可以同時修改多個pick為squash,除了第一個pick不能被修改以外,都可以修改為squash)

fixup,fixup是僅僅丟棄提交記錄,但是該次提交的已修改的文件不會變動,這個適用于合并兩個分支時,兩個分支都有變動,那么在合并的時候git會自動創建一個提交記錄,記錄本次合并。如果沒什么沖突,為了簡潔,可以把這個自動創建的提交記錄丟棄掉。

drop, 顧名思義,丟棄,不僅丟棄提價記錄還丟棄添加或者文件內被修改的內容。

注意,倘若你已經git push到上游了,那就不要修改提交記錄了,會造成混亂。這只適用于本地修改完,但還未push的時候。

總結

以上是生活随笔為你收集整理的浅谈git rebase命令 -- git修改历史提交信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。