最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從Git歷史中刪除誤提交文件并保留本地文件的解決方案

 更新時間:2025年10月21日 09:52:32   作者:盡興-  
本文介紹了如何在Git項目中刪除誤提交的文件(如node_modules/.env等),包括用git rm --cached保留本地文件、更新.gitignore防止再次提交,以及用git filter-repo等工具徹底清除Git歷史中的敏感文件,保障項目安全,需要的朋友可以參考下

場景

在 Git 項目中,我們可能會不小心提交了本應(yīng)忽略的文件(如 node_modules/、.env*.log 等),導(dǎo)致倉庫體積膨脹或敏感信息泄露。本文介紹如何從 Git 歷史中徹底刪除這些文件,同時保留本地文件。

解決方案

1. 確認(rèn)誤提交的文件

# 查看 Git 倉庫中的文件(包括已忽略的)
git ls-files

如果發(fā)現(xiàn)誤提交的文件(如 config.ini),可以進(jìn)一步檢查其 Git 歷史:

git log -- config.ini

2. 從 Git 中移除文件(但保留本地)

使用 git rm --cached 命令:

# 從 Git 索引中移除文件,但不刪除本地文件
git rm --cached config.ini

# 如果誤提交的是整個目錄(如 node_modules/)
git rm --cached -r node_modules/

注意

  • -cached 確保本地文件不會被刪除
  • 如果文件已在 .gitignore 中,仍需手動從 Git 中移除

3. 更新 .gitignore(防止再次提交)

# 確保 .gitignore 已包含該文件echo "config.ini" >> .gitignore
echo "node_modules/" >> .gitignore

# 檢查 .gitignore 是否生效
git check-ignore -v config.ini

4. 提交更改

git add .gitignore
git commit -m "Remove accidentally committed files"
git push

警告:此時文件仍存在于 Git 歷史中,可能被他人拉取到本地!如需徹底清除,繼續(xù)下一步。

到這里基本就可以了,下方作為了解,酌情參考。

進(jìn)階:徹底清理 Git 歷史中的文件

如果誤提交的文件包含敏感信息(如密碼、密鑰),必須從 Git 歷史中完全刪除,可使用 git filter-repo(推薦)或 BFG Repo-Cleaner。

方法 1:使用 git filter-repo(推薦)

# 安裝 git-filter-repo
pip install git-filter-repo

# 從所有提交歷史中刪除文件
git filter-repo --path config.ini --invert-paths

# 強(qiáng)制推送清理后的倉庫(?? 會重寫歷史)
git push origin --force --all

方法 2:使用 BFG Repo-Cleaner(適合大文件)

# 下載 BFG
java -jar bfg.jar --delete-files config.ini .git

# 清理 Git 垃圾數(shù)據(jù)
git reflog expire --expire=now --all
git gc --prune=now --aggressive

# 強(qiáng)制推送
git push --force

最佳實踐

提交前檢查變更

git status
git diff --cached

使用預(yù)提交鉤子(pre-commit)

在 .git/hooks/pre-commit 中添加檢查腳本,阻止提交忽略文件。

敏感信息處理

如果誤提交了密碼,立即輪換密鑰,即使已從 Git 中刪除。

總結(jié)

操作類型命令示例適用場景
從暫存區(qū)移除git rm --cached file簡單清理,保留本地文件
徹底刪除歷史記錄git filter-repo --path file敏感信息泄露,需完全清除
防止未來提交更新 .gitignore避免重復(fù)錯誤

到此這篇關(guān)于從Git歷史中刪除誤提交文件并保留本地文件的解決方案的文章就介紹到這了,更多相關(guān)Git歷史中刪除誤提交文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 知識蒸餾聯(lián)邦學(xué)習(xí)的個性化技術(shù)綜述

    知識蒸餾聯(lián)邦學(xué)習(xí)的個性化技術(shù)綜述

    這篇文章主要為大家介紹了知識蒸餾聯(lián)邦學(xué)習(xí)的個性化技術(shù)綜述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Git原理和常用操作

    Git原理和常用操作

    今天小編就為大家分享一篇關(guān)于Git原理和常用操作的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • git 將本地文件(夾)上傳到gitee指定分支的處理方法

    git 將本地文件(夾)上傳到gitee指定分支的處理方法

    這篇文章主要介紹了git 將本地文件(夾)上傳到gitee指定分支的處理方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 低版本VS項目在VS2019無法正常編譯的問題

    低版本VS項目在VS2019無法正常編譯的問題

    這篇文章主要介紹了低版本VS項目在VS2019無法正常編譯的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Git Commit生成與合入Patch指南分享

    Git Commit生成與合入Patch指南分享

    文章介紹了生成和應(yīng)用補(bǔ)丁的兩種方法:diff命令對比目錄生成補(bǔ)?。ㄐ杪窂揭恢禄蚴褂密涙溄樱?及Git format-patch生成特定提交的補(bǔ)丁,同時說明了使用patch命令合入補(bǔ)丁的步驟,包括忽略目錄層級和撤銷操作
    2025-08-08
  • Git忽略提交的3種方法及Git忽略規(guī)則

    Git忽略提交的3種方法及Git忽略規(guī)則

    在使用Git的過程中,我們喜歡有的文件比如日志,臨時文件,編譯的中間文件等不要提交到代碼倉庫,這時就要設(shè)置相應(yīng)的忽略規(guī)則今天為大家簡單介紹下Git的忽略及規(guī)則
    2018-10-10
  • 徹底卸載VSCode的方法步驟(附圖文)

    徹底卸載VSCode的方法步驟(附圖文)

    VSCode卸載后重新安裝,會發(fā)現(xiàn)好像把之前的設(shè)置和配置也復(fù)原,這樣就達(dá)不到重裝的目的,問題就在于卸載時沒有卸載干凈,下面這篇文章主要給大家介紹了關(guān)于徹底卸載VSCode的方法步驟,需要的朋友可以參考下
    2023-04-04
  • 即時通訊軟件在網(wǎng)頁上啟動臨時對話的鏈接代碼

    即時通訊軟件在網(wǎng)頁上啟動臨時對話的鏈接代碼

    旺旺臨時對話的鏈接,MSN臨時對話的鏈接,Skype臨時對話的鏈接
    2008-11-11
  • Git在Windows中安裝與使用教程

    Git在Windows中安裝與使用教程

    這篇文章主要介紹了Git在Windows中安裝與使用教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 音視頻基本概念和FFmpeg的簡單入門教程詳解

    音視頻基本概念和FFmpeg的簡單入門教程詳解

    FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機(jī)程序??梢暂p易地實現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換,這篇文章主要介紹了音視頻基本概念和FFmpeg的簡單入門,需要的朋友可以參考下
    2022-04-04

最新評論

霍林郭勒市| 岢岚县| 揭东县| 浏阳市| 宜黄县| 饶平县| 汤原县| 屯门区| 石家庄市| 新晃| 项城市| 麻阳| 潜江市| 鄂伦春自治旗| 崇阳县| 庐江县| 乃东县| 晋中市| 辰溪县| 西林县| 鲁山县| 夏河县| 四子王旗| 库车县| 黑水县| 台中县| 黔南| 溧阳市| 东台市| 彰化县| 顺平县| 沂源县| 克拉玛依市| 双柏县| 珠海市| 读书| 库尔勒市| 平山县| 隆化县| 靖西县| 晋州市|