[教學] git-12 追加檔案到最近的提交 - 討論區

[教學] git-12 追加檔案到最近的提交

文章瀏覽次數 1453 文章回覆數 0

特種兵

特種兵圖像(預設)

2020-03-03 19:58:51

From:211.23.21.202

正文

雖然說就再做一次 commit 就好,但有時會覺得這明明是之前那個 commit 應該做的事情,

為了想保持同一個 commit 的完整性,不想再做一次 commit 這樣,也是可以辦到。

我記得上次改內部系統的一個程式,提交後才發現有個檔案沒複製過去,

但是上一個 commit 內容已經有寫到這件事了,所以就會有這個需求。

至少有兩種方式:

  1. 使用 git reset 把最後一次的 commit 拆掉再加入檔案後重新 commit 一次
  2. 使用 --amend 參數進行 commit

第一種還是以後再說,先介紹第二種方式好了。

我們現在用 git bash 的指令複製一個檔案過來當作是新增的檔案

$ cp /d/test.py .                                                               
$ git status                                                                    
 On branch master                                                                
 Untracked files:                                                                
   (use "git add <file>..." to include in what will be committed)                
         test.py                                                                 

 nothing added to commit but untracked files present (use "git add" to track)    

檔案加進來了但還沒有被 git 追蹤到(Untracked files),那就先加到暫存區吧

$ git add . 

接著用 --amend 參數來 commit

$ git commit --amend --no-edit                                                  
 [master 25c6264] 將 welcome.txt 更名為 hello.txt                                
  Date: Sun Feb 23 22:30:28 2020 +0800                                           
  2 files changed, 35 insertions(+)                                              
  rename welcome.txt => hello.txt (100%)                                         
  create mode 100644 test.py                                                     

如果覺得 commit 內容也要跟著改,那就不要使用 --no-edit 參數,

而是用上一節的方式來編輯提交訊息。

補充

如果有使用遠端倉庫,做這個動作後 push 上去都會發生錯誤,

目前我的做法是本地端做好後先從遠端倉庫把資料 pull 回來讓他自動 merge 接著再直接 push 回去,

這樣就會多一筆 merge 的 log 紀錄,目前先這樣處理,之後再看看有什麼更好的方式。

關於遠端倉庫,之後會說。