iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
Mobile Development

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

# Day29--在某些commit之間再加些commit:我就是欲求不滿,我就是強迫症!

  • 分享至 

  • xImage
  •  

加些新的commit

Well,其實大部分的作法跟上一篇蠻相近的,我們都必須先進到commit紀錄中,一探究竟:

git log --oneline

然後我們都必須停在某個commit上,所以輸入:

git rebase -i 507908b

然後進到Vim裡面,會看到各種紀錄:

輸入:
i或a或o

改變了模式為insert,那這次由於要把某一個commit中加入新的commit,所以我們選擇一個新的commit紀錄,改為edit:

就選它(bcb20d4)吧

然後一樣先離開insert模式

先輸入 Esc

然後輸入 :wq

這時候這個畫面有兩個指令讓你選擇:

git commit --amend

git commit --continue

如果你還記得上一篇的話,輸入下面git commit --continue就會直接把rebase完成。

git commit --continue

But,但我們現在不可以這樣做:

我們來建個新的東西吧!

touch JJ.html
git add JJ.html
git commit "JJ.html"

touch CC.html
git add CC.html
git commit "CC.html"

結束上面的建新檔案、add、commit之後

就給它執行:

git rebase --continue

這個時候,我們就會看到剛剛挑中的edit紀錄的後面多了兩個commit紀錄:

add CC.html
add JJ.html

調整commit順序

一樣起手式:

git log --oneline

進到Vim

git rebase -i 507908b

ok,然後我們來動手調動一些紀錄的順序:

我們把JJ.html、CC.html調到DD.html前面。

btw,這裡要千萬記住:Vim跟Git在紀錄順序上的邏輯是完全不一樣的,Git是越上面越新,Vim是越下面越新。

刪除某幾個commit

一樣起手式看目錄+rebase指令後:

我想把那幾個JJ、CC、DD的奇怪commit都刪掉:

就直接動手砍,然後Vim存檔離開:wq

嗯,看來是很順利呢!

tags: 鐵人賽

上一篇
# Day28--讓commit像戰國時代一樣分分合合
下一篇
# Day30--Push?Pull?跟GitHub好好溝通溝通
系列文
Swift30天:從語法到觀念,告訴你在踏入實作前最好弄清楚的那些事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言