GIT 撤銷上次推送

注意:在執行下述操作之前先備份現有工作進度,如果不慎未保存,在代碼編輯器中正在修改的文件下,使用Ctrl+Z 撤銷試試

撤銷推送的方法

情況 1:您剛剛推送到遠程倉庫

如果您的推送操作剛剛完成,并且沒有其他開發者在此期間提交新的更改,可以使用以下方法撤銷推送。

方法 1:強制推送回退到之前的提交

? ? ? ? ? 1 找到推送前的最后一次提交的哈希值 使用以下命令查看提交歷史,找到推送前的最后一次提交的哈希值(例如 abc1234):

git log --oneline

?? ? ? ? ? 2?強制推送回退到指定提交 使用以下命令將遠程分支強制回退到指定提交:

git push origin <commit-hash>:<branch-name> --force

示例:

git push origin abc1234:master --force

這會將遠程分支 master 的狀態回退到提交 abc1234

方法 2:重置本地分支并強制推送

? ? ? ? ? ? ?1 重置本地分支到推送前的狀態 如果您已經知道推送前的最后一次提交的哈希值(例如 abc1234),可以使用以下命令重置本地分支:

git reset --hard <commit-hash>

? ? ? ? ? ?示例

git reset --hard abc1234

? ? ? ?2 強制推送重置后的分支 將本地分支的狀態強制推送到遠程倉庫:

git push origin --force
情況 2:其他開發者已經基于此推送進行了工作

如果其他開發者已經基于您錯誤推送的提交進行了工作,直接撤銷推送可能會導致他們的工作丟失。在這種情況下,您需要采取更謹慎的方式:

  1. 與團隊溝通

    • 通知團隊成員暫停對相關分支的工作。
    • 確保所有人都了解即將進行的回退操作。
  2. 創建一個新的修復提交 而不是直接回退歷史記錄,可以通過創建一個新的提交來修復問題:

# 撤銷最近一次提交,但保留更改
git revert HEAD
  • 這會在當前分支上創建一個新的提交,用于撤銷最近一次提交的更改。
  • 推送這個新的提交到遠程倉庫:
git push origin master

注意事項

1 備份遠程倉庫

  • 在執行任何回退或撤銷操作之前,請確保備份遠程倉庫的狀態(例如通過克隆或導出)。
  • 如果遠程倉庫支持鏡像克隆,可以使用以下命令備份:
git clone --mirror <HTTPS鏈接>

2 保護分支規則

  • 如果遠程倉庫啟用了分支保護規則(如禁止強制推送),您需要先禁用這些規則,或者聯系管理員協助完成操作。

3 協作開發的影響

  • 強制推送會改變遠程分支的歷史記錄,可能會影響其他開發者的本地分支。
  • 其他開發者需要重新同步遠程分支的狀態,例如通過以下命令:
git fetch origin
git reset --hard origin/master

4 超大文件的后續處理

  • 如果您因為超大文件的問題而需要撤銷推送,請在回退后徹底清理該文件的歷史記錄(參考之前的回答)。
  • 確保后續不再將超大文件提交到倉庫中。

總結

  • 如果您剛剛推送到遠程倉庫并且沒有其他開發者參與,可以直接通過 git resetgit push --force 撤銷推送。
  • 如果其他開發者已經基于錯誤推送進行了工作,建議通過 git revert 創建一個新的修復提交,而不是直接回退歷史記錄。
  • 在執行任何操作之前,請務必備份遠程倉庫,并與團隊充分溝通。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75432.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75432.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75432.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

透視飛鶴2024財報:如何打贏奶粉罐里的科技戰?

去年乳制品行業壓力還是不小的&#xff0c;尼爾森IQ指出2024年國內乳品市場仍處在收縮區間。但是&#xff0c;總有龍頭能抗住壓力&#xff0c;飛鶴最近交出的2024財報中就有很多亮點。 比如&#xff0c;2024年飛鶴營收207.5億元、同比增長6%&#xff0c;凈利潤36.5億元&#x…

解決STM32CubeMX中文注釋亂碼

本人采用【修改系統環境變量】的方法 1. 使用快捷鍵 win X&#xff0c;打開【系統R】&#xff0c;點擊【高級系統設置】 2. 點擊【環境變量】 3. 點擊【新建】 4.按圖中輸入【JAVA_TOOL_OPTIONS】和【-Dfile.encodingUTF-8】&#xff0c;新建環境變量后重啟CubeMX即可。 解釋…

使用typescript實現游戲中的JPS跳點尋路算法

JPS是一種優化A*算法的路徑規劃算法&#xff0c;主要用于網格地圖&#xff0c;通過跳過不必要的節點來提高搜索效率。它利用路徑的對稱性&#xff0c;只擴展特定的“跳點”&#xff0c;從而減少計算量。 deepseek生成的總是無法完整運行&#xff0c;因此決定手寫一下。 需要注…

Jetpack Compose 狀態管理指南:從基礎到高級實踐

在Jetpack Compose中&#xff0c;界面狀態管理是構建響應式UI的核心。以下是Compose狀態管理的主要概念和實現方式&#xff1a; 基本狀態管理 1. 使用 mutableStateOf Composable fun Counter() {var count by remember { mutableStateOf(0) }Button(onClick { count }) {T…

vant4+vue3上傳一個pdf文件并實現pdf的預覽。使用插件pdf.js

注意下載的插件的版本"pdfjs-dist": "^2.2.228", npm i pdfjs-dist2.2.228 然后封裝一個pdf的遮罩。因為pdf文件有多頁&#xff0c;所以我用了swiper輪播的形式展示。因為用到移動端&#xff0c;手動滑動頁面這樣比點下一頁下一頁的方便多了。 直接貼代碼…

Leetcode hot 100(day 4)

翻轉二叉樹 做法&#xff1a;遞歸即可&#xff0c;注意判斷為空 class Solution { public:TreeNode* invertTree(TreeNode* root) {if(rootnullptr)return nullptr;TreeNode* noderoot->left;root->leftinvertTree(root->right);root->rightinvertTree(node);retu…

C,C++語言緩沖區溢出的產生和預防

緩沖區溢出的定義 緩沖區是內存中用于存儲數據的一塊連續區域&#xff0c;在 C 和 C 里&#xff0c;常使用數組、指針等方式來操作緩沖區。而緩沖區溢出指的是當程序向緩沖區寫入的數據量超出了該緩沖區本身能夠容納的最大數據量時&#xff0c;額外的數據就會覆蓋相鄰的內存區…

大數據(4)Hive數倉三大核心特性解剖:面向主題性、集成性、非易失性如何重塑企業數據價值?

目錄 背景&#xff1a;企業數據治理的困境與破局一、Hive數據倉庫核心特性深度解析1. ?面向主題性&#xff08;Subject-Oriented&#xff09;&#xff1a;從業務視角重構數據?2. ?集成性&#xff08;Integrated&#xff09;&#xff1a;打破數據孤島的統一視圖?3. ?非易失…

A股復權計算_前復權數據計算_終結章

目錄 前置&#xff1a; 計算方法推導 數據&#xff1a; 代碼&#xff1a; 視頻&#xff1a; 前置&#xff1a; 1 本系列將以 “A股復權計算_” 開頭放置在“隨想”專欄 2 權息數據結合 “PostgreSQL_” 系列博文中的股票未復權數據&#xff0c;可以自行計算復權日數據 …

Nature:新發現!首次闡明大腦推理神經過程

人類具有快速適應不斷變化的環境的認知能力。這種能力的核心是形成高級、抽象表示的能力&#xff0c;這些表示利用世界上的規律來支持泛化。然而&#xff0c;關于這些表征如何在神經元群中編碼&#xff0c;它們如何通過學習出現以及它們與行為的關系&#xff0c;人們知之甚少。…

Kotlin 集合函數:map 和 first 的使用場景

Kotlin 提供了豐富的集合操作函數&#xff0c;使開發者可以更加簡潔、高效地處理數據。其中&#xff0c;map 和 first 是兩個常用的函數&#xff0c;分別用于轉換集合和獲取集合中的第一個元素。 1. map 的使用場景 場景 1&#xff1a;對象列表轉換 在開發中&#xff0c;我們…

EIR管理中IMEI和IMSI信息的作用

在EIR&#xff08;設備身份注冊&#xff09;管理中&#xff0c;IMEI&#xff08;國際移動設備身份碼&#xff09;和IMSI&#xff08;國際移動用戶識別碼&#xff09;各自具有重要作用&#xff0c;以下是詳細介紹&#xff1a; IMEI的作用 設備身份識別&#xff1a;IMEI是移動設…

MAUI開發第一個app的需求解析:登錄+版本更新,用于喂給AI

vscode中MAUI框架已經搭好,用MAUI+c#webapi+orcl數據庫開發一個app, 功能是兩個界面一個登錄界面,登錄注冊常用功能,另一個主窗體,功能先空著,顯示“主要功能窗體”。 這是一個全新的功能,需要重零開始涉及所有數據表 登錄后檢查是否有新版本程序,自動更新功能。 1.用戶…

KUKA機器人查看運行日志的方法

對于KUKA機器人的運行日志都是可以查看和導出的&#xff0c;方便查找問題。KUKA機器人的運行日志查看方法如下&#xff1a; 1、在主菜單下&#xff0c;選擇【診斷】-【運行日志】-【顯示】下打開&#xff1b; 2、顯示出之前的機器人運行日志&#xff1b; 3、也可以通過【過濾器…

Kali Linux 2025.1a:主題煥新與樹莓派支持的深度解析

一、年度主題更新與桌面環境升級 Kali Linux 2025.1a作為2025年的首個版本&#xff0c;延續了每年刷新主題的傳統。本次更新包含全新的啟動菜單、登錄界面及桌面壁紙&#xff0c;涵蓋Kali標準版和Kali Purple版本。用戶可通過安裝kali-community-wallpapers包獲取社區貢獻的額…

【UVM學習筆記】更加靈活的UVM—通信

系列文章目錄 【UVM學習筆記】UVM基礎—一文告訴你UVM的組成部分 【UVM學習筆記】UVM中的“類” 文章目錄 系列文章目錄前言一、TLM是什么&#xff1f;二、put操作2.1、建立PORT和EXPORT的連接2.2 IMP組件 三、get操作四、transport端口五、nonblocking端口六、analysis端口七…

uni-app項目上傳至gitee方法詳細教程

1. 準備工作 1.1 安裝 Git 下載并安裝 Git&#xff1a;前往 Git 官網&#xff0c;根據操作系統下載安裝包。 配置用戶名和郵箱&#xff08;需與 Gitee 賬號一致&#xff09;&#xff1a; git config --global user.name "你的Gitee用戶名" git config --global use…

走向多模態AI之路(三):多模態 AI 的挑戰與未來

目錄 前言一、多模態 AI 真的成熟了嗎&#xff1f;二、多模態 AI 的主要挑戰2.1 計算資源消耗&#xff1a;模型復雜度帶來的成本問題2.2 數據標注困難&#xff1a;跨模態數據集的挑戰2.3 對齊和融合的難點2.4 泛化能力與魯棒性2.5 倫理與隱私問題 三、研究方向與未來發展3.1 輕…

STM32單片機入門學習——第12節: [5-2]對射式紅外傳感器計次旋轉編碼器計次

寫這個文章是用來學習的,記錄一下我的學習過程。希望我能一直堅持下去,我只是一個小白,只是想好好學習,我知道這會很難&#xff0c;但我還是想去做&#xff01; 本文寫于&#xff1a;2025.04.03 STM32開發板學習——第12節: [5-2]對射式紅外傳感器計次&旋轉編碼器計次 前言…

匯編學習之《jcc指令》

JCC&#xff08;Jump on Condition Code&#xff09;指的是條件跳轉指令&#xff0c;c中的就是if-else, while, for 等分支循環條件判斷的邏輯。它包括很多指令集&#xff0c;各自都不太一樣&#xff0c;接下來我盡量將每一個指令的c 源碼和匯編代碼結合起來看&#xff0c;加深…