iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
Mobile Development

Swift30天:從語法到觀念,告訴你在踏入實作前最好弄清楚的那些事系列 第 27

# Day27--我是誰?我在哪?終於離開Vim了

不知不覺commit了很多東西,今天要來面對的,就是這些紀錄的修改。

這個篇章大概會分成兩個部分:

用rebase召喚互動模式

在用rebase之前,先看一下紀錄

git log --oneline

嗯....那假若我今天想要改一些紀錄呢?

於是,我輸入rebase指令:

git rebase -i 507908b

結果......

不小心墮入無盡Vim的無盡深淵

等等,我進到什麼鬼地方,這裡好像按什麼都沒有什麼用,這啥鬼?

看著一個陌生的畫面,上網查了一下,這才知道這個東西叫做Vim編輯器,據說是一個年紀比我還要大的編輯器。

然後再查查這個要怎麼離開,意外的得知了更多關於Vim編輯器的操作:

原來Vim有兩個模式:

  1. 其一是Insert模式
  2. 其二是Normal模式

現在上面這張圖就是我們正在insert模式,可以準備編輯、改動一些文字,不過,這是等等要做的事情,我現在想先瞭解這個是什麼東西。

那....我試試看切過去Normal模式?

按照搜尋資料來源的說法,切過去的方式要先按個:Esc或是ctrl+[

來試試看吧:

這個時候,左下角的--INSERT--就消失了耶,也就是說,我現在可以離開囉?那怎麼離開?

額....搜尋了一下之後,發現在Normal模式中,有一些關鍵字可以使用:

:w  是存檔
:q  離開
:wq 是存檔+離開

那我先來試一下:wq好了:

耶,回到人間!

看到這邊,大概可以先歸納一些事情,也就是,在Insert模式、Normal模式中,有一些溝通的橋樑:

從Insert模式到Normal模式,只要按下Esc或是Ctrl+[ 就可以去到Normal模式

那反過來呢?

從Normal到Insert模式要怎麼走?

有三個鍵:i、a、o可以使用:

i的意思就是Insert

a的意思就是append

o的意思就....不是那麼直觀,它是「新增一行並開始輸入」

好啦,本來要講編輯歷史紀錄的,結果掉進這個Vim的深淵,不免還是要來講一下怎麼逃離,不過Vim還有很多的指令可以用....我們就有機會再說吧

回到正題:修改紀錄

還記得我輸入了

git rebase -i 507908b

這個指令跑到這裡,也就是剛剛的Insert模式,這個時候我要幹嘛呢?

在insert模式中,當然是要來改一些東西啊,承繼上面所說的,我要來改一些紀錄!

我在這邊把兩個紀錄:

05cd6f3
6cbbf58

前面的pick改成了reword,這個時候就會就意味著修改紀錄,reword的中文意義也就是所謂的「改寫」。

ok,那這個時候我們就跳出這個insert模式吧!

輸入:

:wq

嗯?!

怎麼跑出又一頁?

原來這個就是要我們改上面的commit紀錄

好吧,那就切回insert模式來改:

哦,btw,因為我們剛剛是reword了兩個commit,所以也就是說,會跳出兩次的commit紀錄改寫:

弄完了之後,我們就可以看到紀錄中又兩個commit message是比較不一樣的:

fe80f36 fine!change
672ffe6 ok,just change!

嘿嘿,你以為只有這樣嗎?

下一集還會更精彩喔!

tags: 鐵人賽

上一篇
# Day26--要移花接木就是要rebase~
下一篇
# Day28--讓commit像戰國時代一樣分分合合
系列文
Swift30天:從語法到觀念,告訴你在踏入實作前最好弄清楚的那些事30

尚未有邦友留言

立即登入留言