#!/bin/bashecho "正在檢查Git倉庫..."
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; thenecho "錯誤:當前目錄不是Git倉庫!"exit 1
fiecho "警告:這將丟棄所有未提交的更改和本地提交!"
read -p "Are you sure to continue? (Y/N): " confirmif [[ "$confirm" != "Y" && "$confirm" != "y" ]]; thenecho "Operation cancelled."exit 0
fiecho "正在強制同步當前分支到遠程狀態..."
git reset --hard HEAD || {echo "錯誤:重置分支失敗!"exit 1
}git clean -fd || {#!/bin/bashecho "正在檢查Git倉庫..."
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; thenecho "錯誤:當前目錄不是Git倉庫!"exit 1
fi# 獲取當前分支名
current_branch=$(git symbolic-ref --short HEAD 2>/dev/null)
if [ -z "$current_branch" ]; thenecho "錯誤:無法確定當前分支!"exit 1
fiecho "警告:這將丟棄所有未提交的更改和本地提交!"
echo "當前分支: $current_branch"
read -p "Are you sure to continue? (Y/N): " confirmif [[ "$confirm" != "Y" && "$confirm" != "y" ]]; thenecho "操作已取消。"exit 0
fi# 首先獲取遠程最新狀態
echo "正在獲取遠程最新狀態..."
if ! git fetch origin "$current_branch"; thenecho "錯誤:獲取遠程分支失敗!"exit 1
fi# 重置到遠程分支狀態
echo "正在強制重置分支到遠程狀態..."
if ! git reset --hard "origin/$current_branch"; thenecho "錯誤:重置分支失敗!"exit 1
fi# 清理未跟蹤文件
echo "正在清理未跟蹤文件..."
git clean -fd || {echo "警告:清理未跟蹤文件時遇到問題,但繼續操作"
}# 再次拉取確保同步
if ! git pull; thenecho "警告:git pull 執行失敗,但同步操作已完成"
fiecho "同步完成!當前狀態:"
git status
read -p "按回車鍵繼續..."echo "錯誤:清除未跟蹤文件失敗!"exit 1
}if ! git pull; thenecho "警告:git pull 執行失敗,但同步操作已完成"
figit status
echo "提示:nothing to commit, working tree clean后,完成!"
read -p "按回車鍵繼續..."
使用說明:
1、將腳本保存為 reset_git.sh
2、打開終端,賦予執行權限:chmod +x reset_git.sh
3、在 Git 倉庫文件加打開終端,在中運行:./reset_git.sh