git 撤销提交的文件
一、問(wèn)題
近期在使用git時(shí)遇到一個(gè)問(wèn)題,就是在git上傳文件時(shí),將一個(gè)100兆的大文件添加到了git,并執(zhí)行了push操作,這時(shí)在上傳完畢后,會(huì)提示這個(gè)錯(cuò)誤
Large files detected see http:git.io/iEPt8g for more information this is larger than GitHubs recommended maximum file size of 50MB即git無(wú)法上傳超過(guò)50M的單個(gè)文件。
如果未push,可通過(guò)git commit --amend命令修復(fù),下面2.6有將如何使用。
二、解決辦法
解決辦法是通過(guò)git reset HEAD~1方式撤銷該版本的文件提交,之后的版本文件保留,但需重新添加一次,具體使用舉例如下
1、創(chuàng)建一個(gè)本地git項(xiàng)目?
使用git clone 命令,創(chuàng)建一個(gè)本地git項(xiàng)目 如
E:\Project\Git\MVC> git clone https://github.com/flowbywind/PagedListVnext.git?2、項(xiàng)目中添加文件
2.1在項(xiàng)目目錄下添加1.txt文件,執(zhí)行add和commit操作,具體如下
2.2 在項(xiàng)目目錄下添加大文件(100多M),執(zhí)行add和commit操作,具體如下
2.3 在項(xiàng)目目錄下繼續(xù)添加文件,執(zhí)行add和commit操作,具體如下
2.4執(zhí)行g(shù)it push 操作
由于2.2中的文件超過(guò)50M,執(zhí)行g(shù)it push origin master命令之后,會(huì)出現(xiàn)文章開頭說(shuō)的問(wèn)題,這時(shí)候你會(huì)如果刪除了該大文件,并git commit操作,在git push之后依然會(huì)上傳該大文件。這樣就照成了每次都提交不了的問(wèn)題,所以我們要做的是撤銷步驟2,并不影響步驟2后續(xù)的文件。
2.5 撤銷步驟2的操作
使用命令git reset --mixed HEAD~2,回退到第一步,將步驟2取消掉,步驟3的文件將會(huì)撤銷,變成等待添加,但不會(huì)丟失,我們只需要在add一次即可。
這時(shí)候我們發(fā)現(xiàn),執(zhí)行完該命令后任務(wù)回退到第一步操作,我們把剛才的大文件給刪掉,然后執(zhí)行添加命令?
然后執(zhí)行g(shù)it push origin master 實(shí)現(xiàn)將后續(xù)文件上傳。
2.6 忘記刪掉大文件,又進(jìn)行了commit操作之后的修復(fù)。
如果忘記刪掉大文件,又直接commit了,但僅限于未push,可通過(guò)git commit --remond命令撤銷操作,具體如下
三、備注
關(guān)于git reset命令,包括 --mixed,--soft --hard等,其中--mixed為默認(rèn)方式,他們之間的區(qū)別如下
git reset –mixed:此為默認(rèn)方式,不帶任何參數(shù)的git reset,即時(shí)這種方式,它回退到某個(gè)版本,只保留源碼,回退commit和index信息 git reset –soft:回退到某個(gè)版本,只回退了commit的信息,不會(huì)恢復(fù)到index file一級(jí)。如果還要提交,直接commit即可 git reset –hard:徹底回退到某個(gè)版本,本地的源碼也會(huì)變?yōu)樯弦粋€(gè)版本的內(nèi)容 git reset -soft :取消了commit git reset -mixed(默認(rèn)) :取消了commit ,取消了add git reset -hard :取消了commit ,取消了add,取消源文件修改轉(zhuǎn)載于:https://www.cnblogs.com/mafeng/p/7783597.html
總結(jié)
以上是生活随笔為你收集整理的git 撤销提交的文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: git问题一箩筐:
- 下一篇: 《java语法实例2~15章》