各種用 Git 時可能會發生的情境。
commit 訊息打錯字
git commit --amend
(僅限上一次的 commit)
commit 又後悔了
git reset HEAD^ --hard
,我剛剛發的 commit 跟做的東西我全都不要了。git reset HEAD^ --soft
,我只是收回 commit,但我內容還要留著。git reset HEAD^ --mixed
,跟 –soft 的效果一樣,差別只在於 –mixed 會退回到 Untracked 的狀態。
你可以把 HEAD 想成是我們在「資料夾模擬法」中提到的那個,「用來記錄最新的版本是哪一個」的檔案,所以 HEAD^ 的意思就是「最新版本的前一個」的意思。
如果要指定前很多個的版本,也可以用 「HEAD^數字」的方式來表示。
還沒 commit,但我剛剛改的東西不要了
git restore file-name
指定某個檔案git restore .
所有檔案
我想要改分支的名字
git branch -m new-branch-name
記得要切換到你想要改名字的那個分支。
把遠端的 branch 摘下來
git checkout branch-name
在你 clone 某些 Repository 到本地端的時候,你可能會發現有些遠端的分支在自己的電腦上不會顯示出來。
這個時候你只要用這個切換分支的指令,Git 就會自動把遠端的 branch 摘下來了。