如何从存储库中删除“file1.txt”?
当前回答
转到项目目录并键入:
git filter-branch --tree-filter 'rm -f <deleted-file>' HEAD
在推送之后,强制从所有提交中删除文件。
git push origin --force --all
其他回答
如果您的文件是敏感的(例如,您意外添加并提交的设置或密钥),那么您可以从所有版本中删除它。
要从所有版本中删除,请使用以下命令(警告:小心,因为如果没有副本,您将无法还原回购中删除的文件):
使用Git
git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch file.ext' HEAD
使用gitfilter repo(在这里获取,git推荐的新方法)
git filter-repo --path file.ext
如果您有GitHub for Windows应用程序,您可以通过5个简单步骤删除文件:
单击同步。单击文件所在的目录,然后选择文件的最新版本。单击工具并选择“在此处打开外壳”在shell中,键入:“rm{filename}”并按enter键。提交更改并重新同步。
这是我唯一的选择。
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch *.sql'
注意:用文件名或文件类型替换*.sql。要非常小心,因为这会经过每次提交并删除此文件类型。
编辑:注意-在这个命令之后,您将无法推或拉-您将看到拒绝“不相关的历史记录”,您可以使用“git push--force-u origin master”来推或拉
我有obj和bin文件,它们意外地进入了repo,我不想污染我的“已更改文件”列表
当我注意到他们去了遥控器后,我将其添加到.gitignore中,忽略了他们
/*/obj
/*/bin
问题是它们已经在远程,当它们被更改时,它们会弹出为已更改,并污染已更改的文件列表。
要停止查看它们,您需要从远程存储库中删除整个文件夹。
在命令提示中:
CD到repo文件夹(即C:\repo\MyRepo)我要删除SSIS\obj。似乎只能在顶层删除,因此现在需要将CD插入SSIS:(即C:\repo\MyRepo\SSSIS)现在输入魔法咒语git rm-r-f objrm=删除-r=递归删除-f=表示力,因为你真的是这么想的obj是文件夹现在运行gitcommit-m“删除obj文件夹”
我收到一条警告消息,说13个文件更改了315222个删除
然后,因为我不想查找CMD行,我进入Visual Sstudio并执行了同步,将其应用到远程
在我的案例中,我尝试在几次提交后删除github上的文件,但保存在计算机上
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch file_name_with_path' HEAD
git push --force -u origin master
后来这个文件被忽略了
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别