git commit --amend
// 修改上一次的 commit "訊息":
// terminal 會進入 insert mode, 在此輸入修改的訊息。
// 完成按下 `ESC` 按鈕回到一般指令模式,
// `:wq`:`:` 輸入指令, `w` 存檔 (write), `q` 離開 (quit)
// http://linux.vbird.org/linux_basic/0310vi.php#vi_ex
git commit --amend file1 file2...
///將 file1、file2... 加入上一次的 commit。
(以下只是一部分)
git reset
git reset HEAD
// 移出 stage,保留修改
// 使用 `git reset HEAD <file>` 來還原 "檔案" 的狀態
// HEAD^ 代表前 1 次 (最近一次的)
git reset HEAD^
// 取消 "上次 commit" (上個 commit 那次的 add),保留修改,(?且移出 stage)。
git reset HEAD^ --soft
// 取消 "上次 commit" (上個 commit 那次的 add),但保留當前的 add 和修改。
// 回到 "上次 commit" 且之後的修改保留,留在 stage。
git reset HEAD^ --hard
// 取消 "上次 commti",回復到 "上次 commit",且捨棄之後的變更。
git reset --hard
// 放棄所有修改
git reset --hard <commit id>
// 回到 "<commit id> 後" 乾淨的樣子
Patch
:補丁、補綴的意思,git 裡面是指這次要提交的「修改的片段」,是個名詞。
在 git 中會看到有時 "commit" 是動詞 "提交" 的意思,有時會是名詞 "patch" 的意思。參考:
每次修改進行中的中斷,還是會在本機上 commit 一個 "fix-ing"。 隔天繼續時,先取消上次的 "fix-ing",繼續修改,若有中斷再次 commit "fix-ing"...
有需要的話,可以整理好部份的 "commit msg" 先部分 commit。 但其他進行中修改就一起放在最後的 "fix-ing"。
等真正一段落,才推上遠端的分支。 目前所在的 patch