1. 程式人生 > >git 撤銷提交的檔案

git 撤銷提交的檔案

一、問題

近期在使用git時遇到一個問題,就是在git上傳檔案時,將一個100兆的大檔案新增到了git,並執行了push操作,這時在上傳完畢後,會提示這個錯誤

Large files detected

this is larger than GitHubs recommended maximum file size of 50MB

即git無法上傳超過50M的單個檔案。

如果未push,可通過git commit --amend命令修復,下面2.6有將如何使用。

二、解決辦法

解決辦法是通過git reset HEAD~1方式撤銷該版本的檔案提交,之後的版本檔案保留,但需重新新增一次,具體使用舉例如下

1、建立一個本地git專案

使用git clone 命令,建立一個本地git專案 如

2、專案中新增檔案

2.1在專案目錄下新增1.txt檔案,執行add和commit操作,具體如下

image

2.2 在專案目錄下新增大檔案(100多M),執行add和commit操作,具體如下

image

2.3 在專案目錄下繼續新增檔案,執行add和commit操作,具體如下

image

2.4執行git push 操作

由於2.2中的檔案超過50M,執行git push origin master命令之後,會出現文章開頭說的問題,這時候你會如果刪除了該大檔案,並git commit操作,在git push之後依然會上傳該大檔案。這樣就照成了每次都提交不了的問題,所以我們要做的是撤銷步驟2,並不影響步驟2後續的檔案。

2.5 撤銷步驟2的操作

使用命令git reset --mixed HEAD~2,回退到第一步,將步驟2取消掉,步驟3的檔案將會撤銷,變成等待新增,但不會丟失,我們只需要在add一次即可。

image

image

這時候我們發現,執行完該命令後任務回退到第一步操作,我們把剛才的大檔案給刪掉,然後執行新增命令

image

然後執行git push origin master 實現將後續檔案上傳。

2.6 忘記刪掉大檔案,又進行了commit操作之後的修復。

如果忘記刪掉大檔案,又直接commit了,但僅限於未push,可通過git commit --remond命令撤銷操作,具體如下

image

三、備註

關於git reset命令,包括 --mixed,--soft --hard等,其中--mixed為預設方式,他們之間的區別如下

git reset –mixed:此為預設方式,不帶任何引數的git reset,即時這種方式,它回退到某個版本,只保留原始碼,回退commit和index資訊
git reset –soft:回退到某個版本,只回退了commit的資訊,不會恢復到index file一級。如果還要提交,直接commit即可
git reset –hard:徹底回退到某個版本,本地的原始碼也會變為上一個版本的內容
git reset -soft :取消了commit  
git reset -mixed(預設) :取消了commit ,取消了add
git reset -hard :取消了commit ,取消了add,取消原始檔修改

參考文章

相關推薦

git 撤銷提交檔案

一、問題 近期在使用git時遇到一個問題,就是在git上傳檔案時,將一個100兆的大檔案新增到了git,並執行了push操作,這時在上傳完畢後,會提示這個錯誤 Large files detected this is larger than GitHubs recommended ma

git 忽略提交檔案設定(.gitignore配置)

操作前提 : 已經安裝好了 git 操作方式 在專案根目錄 按住 shift + 右鍵, 選擇 Git Bash Here,開啟 Git 命令控制檯 使用命令在專案根目錄下 新建一個 .gitignore檔案 命令: touch .gitignore (注意: 這裡的

git 忽略提交檔案.gitignore

## .gitignore for Grails 1.2 and 1.3 # .gitignore for maven target/ *.releaseBackup # web application files #/web-app/WEB-INF # IDE suppo

git 提交檔案撤銷操作

1. git add 新增 了多餘檔案 (只是add了,還沒有commit)撤銷步驟:git status 檢視add 的檔案 git reset HEAD XXX/XXX/XXX.java 對某個檔案進行撤銷git reset HEAD 撤銷上次所有的add檔案2. git

Git 本地提交時,忽略特定檔案或目錄

https://blog.csdn.net/huzhenwei/article/details/7426093 在將某個目錄新增到git版本庫、或提交某個git版本庫的改動時,可能希望忽略掉一些檔案或目錄(如編譯時生成的.o、.a檔案等),可以修改.git/info/exclude檔案來實現。

git忽略某些檔案提交

在專案中有些配置檔案不需要提交,但是有同學在後面開發中發現在.igonore檔案中無論如何都無法忽略某些檔案的提交。原因在這裡: 已經維護起來的檔案,即使加上了gitignore,也無濟於事。—- 那麼如何解決呢?方式如下 git update-index --assume-un

git撤銷提交內容

前言 本解決方案,只適合最近一個提交或者撤銷commit的內容之後的提交內容你不需要。 問題 把兩個commit之後的程式碼提交到git服務,git服務拒接接受提交,原因是第一個commit中有一個超過100M的檔案。如何撤銷commit之後的內容 失敗的

Git撤銷提交 Git撤銷提交

Git中撤銷提交   Git的幾種狀態 未修改 工作區 已修改 ↓ 工作區 已暫存 ↓ 暫存區 已提交 ↓ 本地倉庫 已推送 ↓

Git 撤銷所有未提交(Commit)的內容

擼了好多程式碼,但是突然設計改了(o(>_<)o );或者引入個第三方庫,後來又發現用不著,想刪掉,但檔案太多了(比如幾百個);那,怎麼辦呢,都不想了...Git 比人聰明,所以能很方便的幫我們解決問題。 場景一 需要撤銷的內容檔案屬於未跟蹤的狀態。如下

Git撤銷對遠端倉庫的push提交

1. 執行  git log檢視日誌,獲取需要回退的版本號  2. 執行 git reset –soft <版本號> ,如 git reset -soft 4f5e9a90edeadcc45d85f43bd861a837fa7ce4c7 ,重置至指定版本的提交,達到撤銷提交的目的 然後執行 gi

git add提交撤銷 ,出現git add Untracked files

復制 硬盤 恢復 inf info 右鍵 git 出現 分享圖片 在使用git add . 或git add filename 提交至本地緩存後, 使用 git status 查看提交狀態 若提交錯誤,需要撤銷, 使用 git reset --hard命令,但整個代碼回

git撤銷已經push的提交

簡要版: 1. git log 2. git reset --soft 43dc0de914173a1a8793a7eac31dbb26057bbee4 3. git push origin master --force     詳細版: 1. 使用g

git專案提交以後新增或者修改忽略檔案無效的解決辦法

一、git專案提交以後新增或者修改忽略檔案無效的解決辦法。   首先為避免衝突需要先同步下遠端倉庫,這裡以develop分支為例 git pull origin develop 在本地專案目錄下刪除快取 git rm -r --cached . 新建.gitigno

git程式碼提交時二進位制檔案衝突

如題。 問題背景: 開發中遇到了一個奇怪的問題–除錯時的App正常,但是程式碼上傳後通過伺服器打包後的App執行不正常。由於無法除錯,所以只能通過加log的方式定位問題。後來發現加的log並沒有輸出,忽

git檢視單個檔案提交記錄

Git 基礎 - 檢視提交歷史 檢視提交歷史 在提交了若干更新,又或者克隆了某個專案之後,你也許想回顧下提交歷史。 完成這個任務最簡單而又有效的工具是 git log 命令。 接下來的例子會用我專門用於演示的 simplegit 專案, 執行下面的命令獲取該專案

使用Git將本地檔案提交到遠端倉庫

  一 操作準備條件:     git遠端倉庫已經建好了,本地檔案已經存在了,現在要將原生代碼推到git遠端倉庫儲存。 解決辦法如下: 1、(先進入專案資料夾)通過命令 git init 把這個目錄變成git可以管理的倉庫 git init   2、把檔案

git知識總結2——建立版本庫,新增/提交檔案

1.建立版本庫 版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裡面的所有檔案都可以被Git管理起來,每個檔案的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。 首先,選擇一個合適的地方,建立一個空目錄 cd 命令用於切

Git 撤銷中間某次的提交記錄

今天遇到一個問題,一週前一位同事把非釋出程式碼合併到釋出分支上並已釋出線上,在這個提交點後已經有了很多次的提交記錄,所以不能直接回滾,使用到了gIt提供的revert。以此記錄。 git revert commit_id //如果commit_id是merge節點的話,-m是指定具體哪個提交點 git

Git撤銷已經推送(push)至遠端倉庫的提交(commit)資訊

有時,在git push之後,才發現還有一些程式碼需要進行很小的改動,這些改動在原則上不應該作為一次新的提交。 這時,我們需要撤銷這次推送(git push)與提交(git commit),然後進

git提交檔案的操作

git提交檔案的操作()    1、新建一個資料夾    2、初始化這個資料夾//git init    3、設定簽名,三個級別        當前專案&nbs