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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【讲清楚】rebase的使用

發布時間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【讲清楚】rebase的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Git rebase

?git original log:

?

目前有多于三個的log,而我想要合并最近的兩個 log, 也就是上圖中紫色的圈和黃色的圈,所以這個時候使用rebase的方式如下:

git? ? rebase? ?-i? ?ee9ee598ea2a4bece9b23

注意這個時候的應該使用的log的編碼是紅色的圈,雖然我想要合并紫色和黃色,但是需要在紅色圈的基礎上進行合并,所以需要填入ee9ee598

?填完之后,需要對log進行重新選擇,

pick?82b5047??Changes?for?MapLoad?(changed?InitKeyFrame?for?EUCM?based?on?ORI_Ver) pick?eddaa2b??Load?Map? #?Rebase?a71eba2..e1a7dfa?onto?a71eba2 #?Commands: #??p,?pick?=?use?commit #??r,?reword?=?use?commit,?but?edit?the?commit?message #??e,?edit?=?use?commit,?but?stop?for?amending #??s,?squash?=?use?commit,?but?meld?into?previous?commit #??f,?fixup?=?like?"squash",?but?discard?this?commit's?log?message #??x,?exec?=?run?command?(the?rest?of?the?line)?using?shell # #?These?lines?can?be?re-ordered;?they?are?executed?from?top?to?bottom. # #?If?you?remove?a?line?here?THAT?COMMIT?WILL?BE?LOST. # #?However,?if?you?remove?everything,?the?rebase?will?be?aborted. # #?Note?that?empty?commits?are?commented?out

這個文件中的log是按照提交的時間順序來的,提交的時間最早的log,就會在?出現在 最上面,這樣給了我們更清楚的知識,究竟保留哪個,去掉哪個?

pick即為保留的意思,如果pick某個hash,那個這一次提交的代碼修改將會被保存;

squash表示那一次的提交內容將會和它的上一個log合并到一起;squash很適用于那種commit完成后發現自己沒有add全的情況;

reword表示當前的commit記錄會被保留,但是允許你修改commit的comment,使用與commit -m ”“ 時寫錯log的情況;

fixup就更徹底了,會將當前的提交代碼與上一次的提交合并到一起,同時直接刪除掉當前的log message,跟在下面圖2的文件中注釋掉其實是一樣的效果;

一般情況下,squash是最常用的,即保留文件中的修改和commit的提交,只是將這次的commit與上一次的合并而已,所以需要將上述文件修改成:

pick?82b5047??Changes?for?MapLoad?(changed?InitKeyFrame?for?EUCM?based?on?ORI_Ver) s?eddaa2b??Load?Map?

然后ctrl+x 離開,其中會提示是否需要保存,選擇YES即可;

然后會遇到如下文件:

?

這個文件主要是需要選擇新的commit 的comment,也就是log message內容,如果不想要什么可以直接用#把他們注釋掉,

因為我合并和紫色和黃色的兩個圈圈log,并且覺得黃色圈圈的log內容更加準確,所以,就選擇留下第三行的文字;

那么最后合并后的log內容為

?

從如上的合并可以看出,紅色的圈圈沒變,但是紫色圈圈和黃色圈圈都不存在了,而合并成立綠色圈圈,同時綠色圈圈的commit 內容選用了紫色圈圈的內容;

更多理論參考:

https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA

總結

以上是生活随笔為你收集整理的【讲清楚】rebase的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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