老實說,Git很好用,但是有很多突發狀況下,Git的命令常常會想不太起來或是忘記怎麼用。

這邊有印象就寫個筆記

基本命令

stash

如果今天突然有問題要修改,但是你現在的code又還不能commit 那麼就適合用stash來保存這些異動

基本命令:


# 保存當前所有異動
git stash save


# 讀取stash i
# 請善用自動補完,i代表第幾個stash,不是真的命令
# 這兩個命令基本上是一樣的,所以寫在一起
# 差別在於pop取得異動後,會直接刪掉stash中的備份,而apply不會
# 所以如果你只是想「取出來看看」,建議用apply
git stash pop stash@\{i\}
git stash apply stash@\{i\}


# 列出所有的stash
git stash list


# 拋棄stash i
git stash drop stash@\{i\}


# 顯示stash i有哪些檔案有異動
# 如果要更精細的看異動內容,就加上 -p 這個變數
git stash show stash@\{i\}

常用命令:


# 用來保存當前所有的異動,message為這個stash的說明,或著說註解。
# 在 git stash list 的時候會看得到
git stash save -m 'message'


# 互動式的stash,如果只要stash部分異動,那麼就可以用這個命令。
# 這會把有異動的檔案找出來,然後分片段詢問要不要保留
# 基本上的git add --patch 的用法一樣
git stash save --patch 


# 當你只想保留特定檔案,但是不想用add --patch的話
# 可以直接用 -- 檔案路徑
git stash -- project/module/file.xxx

clean

針對那些沒有被版控的檔案,如果老是要一個一個刪就會很煩躁

這個沒啥好筆記的,直接把可用變數列出來好了


--dry-run      -n  -- only show what would and what would not be removed
--exclude      -e  -- skip files matching specified pattern
--force        -f  -- required when clean.requireForce is true (default)
--interactive  -i  -- show what would be done and clean files interactively
--quiet        -q  -- don't print names of files removed
-X                 -- remove only ignored files
-d                 -- also remove untracked directories
-x                 -- also remove ignored files

# 強制刪除所有untracked files,而且連資料夾也會刪除
git clean -f -d


應用篇



重新命名

// 重新命名分支
git branch -m <oldname> <newname>

// 重新命名當前分支
git branch -m <newname>

reference