文件管理 · 2024年2月29日

oschinagit删除文件|Git如何删除历史记录中的大文件详解

1. 如何删除GitHub仓库中的文件夹和文件

背景: 由于上传GitHub时,文件管理不当,多上传了文件和文件夹,滑稿所以想删除它们。但GitHub本身只能删除仓库,而不能直接删除里面的文件。 工具 :git 思路: 克隆本地+重新上传 操作: 1.将对应仓库克隆到本地库[ 命令行git clone xxxxxx.git] (我是直接在Pycharm中操作的) 2.在Git Bash中删除文件和文件夹           git rm test.txt (删除文件)          git rm -r test    (删除文件夹) 3.提交修改,输入如下:          git commit -m "Delete some files."正桐 4.重新上传,输入如下:        举让坦 git push origin xxx 注意点: 1.使用Git Bash删除文件时,必须切换到对应的文件夹下面,例如进入这个位置 “E:\Python\CV_homework\KW1”应该先进入E盘,输入 cd e: 接着输入 cd Python\CV_homework\KW1 2.如果文件夹或者文件名中有空格需要先加转义符' / ' 再加空格' ',例如删除文件 正确输入: git rm hw_1_image\ process\ basic1.0.py

2. git上为什么删除不掉文件夹

git上删除不掉文件夹是因为它的储存方式。git仓库下有一个名为git的隐藏文件夹,删除一个文件,只是记录了删除这个操作,但并不会把文件从git文件夹删除。要想彻底删除git已经记录的文件,就必须用到一个高端命令:gitfilter-branch。git是一个开源的分布式版本控制系统,可以有效、陪键高速地处理从芦轿巧很小到非常大的项目版本帆困管理。

3. git上为什么删除不掉文件夹

git上删除不掉文件夹是因为git的存储方式。根据查询相关信息显示,git仓陪销库下有一个名为git的隐藏文件夹,从git初始化开始,所有仓库的变化都会记录在这个文件夹芦局游中,只要是git记录的文件,就会通过一定的算法保存到这里,删除一个文件,只是记录了删除这个操腊裂作,但并不会把git文件夹删除,要想彻底删除git已经记录的文件夹,就必须用到一个高端命令gitfilterbranch。

4. git 命令删除文件及文件夹

1.删除文件夹 1.1查看本地分支下的文件 ls 1.2 删除src下的某个文件夹 git rm -r src/views (你想要删除的文件夹) 1.3删除某个文件 git rm src/view/home.vue

5. Git如何删除历史记录中的大文件详解

步骤一:从你的资料库中清除文件

以Windows下为例(Linux类似), 打开项目的Git Bash,使用命令:

$ git filter-branch –force –index-filter 'git rm –cached –ignore-unmatch path-to-your-remove-file' –prune-empty –tag-name-filter cat — –all

其中,path-to-your-remove-file就是你要删除的文件的相对路径(相对于git仓库的跟目录), 替换成你要删除的文件即可. 注意一点,这里的文件或文件夹,都不能以 '/' 开头,否则文件或文件夹会被认为是从 git 的安装目录开始。

如果你要删除的目标不是文件,而是文件夹,那么请在 `git rm –cached' 命令后面添加-r命令,表示递归的删除(子)文件夹和文件夹下的文件,类似于 `rm -rf` 命令。

此外,如果你要删除的文件很多, 可以写进一个.sh文件批量执行, 如果文件或路径里有中文, 由于MinGW或CygWin对中文路径设置比较麻烦, 你可以使用通配符*号, 例如: sound/music_*.mp3, 这样就把sound目录下以music_开头的mp3文件都删除了.

例如这样, 新建一个bash脚本文件,del-music-mp3.sh:

注:绿色字部分是命令执行后的结果.

6. git删除远程分支上的文件夹或文件

git删除远程分支上的文件夹或文件: 前提是没有直接push到dev或master的权限。 git删除.idea文件的提交 git ignore: git rm –cached -r *.iml git rm –cached -r .idea git add .gitignore git commit -m '(gitignore commit and remove .idea)' git push origin dev git回退: 可以通过reflog来进行恢复,前提是丢失的分支或commit信息没有被git gc清除 一般情况下,gc对那些无用的object会保留很长时间后才清除的 可以使用git reflog show或git log -g命令来看到所有的操作日志 恢复的过程很简单: 通过git log -g命令来找到需要恢复的信息对应的commitid,可以通过提交的时间和日期来辨别,找到执行reset –hard之前的那个commit对应的commitid