iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
自我挑戰組

30天教你學會Git系列 第 17

[Day17] 今天來談談我Commit時遇到的問題~

  • 分享至 

  • xImage
  •  

啊!我剛剛的commit打錯了怎麼辦!!

  • 恩....的確,我卻常常打錯commitXD
  • 先說啦,我們打錯commit時,有很多種辦法可以補救!
    • 把.git目錄直接砍掉((誤
    • 使用git rebase 來修改歷史
    • 先使用git reset把Commit換掉,整理後再用新的Commit
    • 使用--amend參數來修改最後一次的commit紀錄

我們今天先來說說看使用--amend的方法吧!

  • 首先我們先看看我們的git log長什麼樣子吧!
$ git log --oneline
4a7c998 (HEAD -> master) WTF
9dbfa3f I want change this commit message
82d1f76 This file is for you
  • 哎呀!我剛剛的commit message打成WTF了!
  • 來吧我們現在就用--amend來拯救你的commit message XD
$ git commit --amend -m "Welcome To Facebook"
[master fb92aae] Welcome To Facebook
 Date: Fri Sep 25 09:25:16 2020 +0800
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 123.txt
 
 ####現在讓我們看一下我們的git log####
 
 $ git log --oneline
fb92aae (HEAD -> master) Welcome To Facebook
9dbfa3f I want change this commit message
82d1f76 This file is for you
  • 這樣就成功啦!!

換個口味吧,客官!

  • 剛剛是使用git --amend的方式,現在我們來用用看reset的方式如何?
  • 一樣我們先看看git log
$ git log --oneline
fb92aae (HEAD -> master) Welcome To Facebook
9dbfa3f I want change this commit message
82d1f76 This file is for you
  • 如果我們想要拆掉上一次的Commit,我們有絕對相對的做法

    • 先來說說相對的做法吧!
      • 我們目前處於的版本的SHA值是fb92aae,但我們要讓他回到上一次
      • 以指令來說,你應該要寫git reset fb92aae~
      • 這段是在說,我要把版本reset到版本fb92aae的上一版!
    • 相對也可以這樣打...
      • 首先,我們的HEAD是在我的目前版本上嘛
      • 所以我們可以讓HEAD自己回到上一版的位置,git reset HEAD~
      • 這樣也會有同樣的效果哦!
    • 如果是絕對的話,那更簡單了
    • 先找到你想回去的版本SHA值
    • 你就可以下指令:git reset 9dbfa3f
  • 不管你用以上哪種方法,只要使用成功後,你的git status 都會像這樣

$ git log --oneline
9dbfa3f (HEAD -> master) I want change this commit message
82d1f76 This file is for you
  • 這樣就是你成功囉!

那個波浪符就是上一個版本的意思,如果想回到兩個版本前就是git reset HEAD~2,三個版本前就是git reset HEAD~3,以此類推


上一篇
[Day16] 今天來聊聊...你可能會面臨的問題[之一]!!
下一篇
[Day18] 該回去聊聊快被遺忘的GitHub了吧!
系列文
30天教你學會Git30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言