---
# System prepended metadata

title: Git 刪除已 Push 至遠端分支的 Commit
tags: [筆記]

---

---
title: Git 刪除已 Push 至遠端分支的 Commit
tags: 筆記
description: 將 Push 至遠端分支的 Commit 刪除。
---
# Git 刪除已 Push 至遠端分支的 Commit
將 Push 至遠端分支的 Commit 刪除。

## 1. 查看一下目前的 Commit 記錄及 `HEAD` 位置
```git
git log --oneline
```

```
111f161 (HEAD -> main, origin/main) Remove CSS Code
bc503ac Declare Variable
cc05161 Set Anchor
46fc39b v1.0
```

## 2. 重設 `HEAD`
```git
# 從目前的 HEAD 倒退一個 Commit
git reset HEAD^

# 從目前的 HEAD 倒退兩個 Commit
git reset HEAD^^

# 從目前的 HEAD 倒退三個 Commit
git reset HEAD~3

# 設定 HEAD 為 111f161 這一個 Commit
git reset 111f161

# 設定 HEAD 為 cc05161 的前一個 Commit
git reset cc05161^
```

重複第一點，確認目前的 `HEAD` 位置。

設定好 `HEAD` 之後，就成功把本地端的錯誤 Commit 刪掉了，但是遠端的 main 分支的部分還未修正。

## 3. 強制推送至遠端分支
```git
git push origin main --force
```

推送至遠端 main 分支上面的錯誤 Commit 就消失了。

## 4. 查看遠端分支 Commit 記錄
```git
git log origin/main --oneline
```