# 修改最後一次 commit 的訊息 git commit --amend # 使用強制推送更新遠端 git push --force-with-lease origin [branch_name]
# 加入暫存區 git add . # 修改最後一次 commit(包含訊息與內容) git commit --amend # 使用強制推送更新遠端 git push --force-with-lease origin [branch_name]
# 刪除本地分支 git branch -d [branch_name] # 若分支未合併但仍要刪除,改用 -D # git branch -D [branch_name] # 刪除遠端分支 git push origin --delete [branch_name]
# 確認當前不在要刪除的分支上 git checkout master # 刪除本地分支 git branch -d [branch_name] # 刪除遠端分支 git push origin --delete [branch_name] # 列出本地分支 git branch # 列出遠端分支 git branch -r
# 回到合併之前的 commit git reset --hard [commit_id] # 若分支已推送到遠端,需強制推送以同步狀態 git push --force-with-lease origin [branch_name]
# 用 revert 來取消 merge commit,保留歷史紀錄 git revert -m 1 [commit_id]
-m 1 的意思是保留哪一個父 commit,通常是被 merge 的目標分支(例如 main 為父 1)
-m 1
# 列出所有包含此 commit 的遠端分支 git branch -r --contains [commit_id] # 查看本地比遠端多了哪些 commit git log origin/[branch_name]..[branch_name] --oneline # 查看遠端比本地多了哪些 commit git log [branch_name]..origin/[branch_name] --oneline # 確認當前 HEAD 與遠端 HEAD 是否一致 git rev-parse HEAD git rev-parse origin/[branch_name]
Git 退版流程
只想修改 commit 訊息(內容不變)
# 修改最後一次 commit 的訊息 git commit --amend # 使用強制推送更新遠端 git push --force-with-lease origin [branch_name]commit 的檔案內容也需要修改
# 加入暫存區 git add . # 修改最後一次 commit(包含訊息與內容) git commit --amend # 使用強制推送更新遠端 git push --force-with-lease origin [branch_name]刪除分支
# 刪除本地分支 git branch -d [branch_name] # 若分支未合併但仍要刪除,改用 -D # git branch -D [branch_name] # 刪除遠端分支 git push origin --delete [branch_name]完整流程(安全版)
# 確認當前不在要刪除的分支上 git checkout master # 刪除本地分支 git branch -d [branch_name] # 刪除遠端分支 git push origin --delete [branch_name] # 列出本地分支 git branch # 列出遠端分支 git branch -rreset 取消這次合併
# 回到合併之前的 commit git reset --hard [commit_id] # 若分支已推送到遠端,需強制推送以同步狀態 git push --force-with-lease origin [branch_name]改用 revert(保留歷史,反做一次)
# 用 revert 來取消 merge commit,保留歷史紀錄 git revert -m 1 [commit_id]確認某一個 commit 是否已存在於遠端
# 列出所有包含此 commit 的遠端分支 git branch -r --contains [commit_id] # 查看本地比遠端多了哪些 commit git log origin/[branch_name]..[branch_name] --oneline # 查看遠端比本地多了哪些 commit git log [branch_name]..origin/[branch_name] --oneline # 確認當前 HEAD 與遠端 HEAD 是否一致 git rev-parse HEAD git rev-parse origin/[branch_name]