git 取消上次 commit

git 取消上次 commit

amend

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。

reset 重置狀態

(以下只是一部分)

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" 的意思。

參考:


目前...理想中管理 git 的方式...

每次修改進行中的中斷,還是會在本機上 commit 一個 "fix-ing"。 隔天繼續時,先取消上次的 "fix-ing",繼續修改,若有中斷再次 commit "fix-ing"...

有需要的話,可以整理好部份的 "commit msg" 先部分 commit。 但其他進行中修改就一起放在最後的 "fix-ing"。

等真正一段落,才推上遠端的分支。 目前所在的 patch

results for ""

    No results matching ""