如何从存储库中删除“file1.txt”?
当前回答
根据文件。
git rm—缓存文件1.xt
当涉及到敏感数据时,最好不要说您删除了该文件,而是将其包含在最后一次已知提交中:
0.修改上次提交
git commit --amend -CHEAD
如果要从所有git历史记录中删除该文件,根据文档,应执行以下操作:
1.将其从本地历史记录中删除
git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" \ --prune-empty --tag-name-filter cat -- --all
# Replace PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA with the path to the file you want to remove, not just its filename
不要忘记将此文件包含在.gitignore中(如果它是一个您永远不想共享的文件(例如密码…):
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"
3.如果需要从遥控器中移除
git push origin --force --all
4.如果您还需要将其从标签发布中删除:
git push origin --force --tags
其他回答
只需打开github存储库中的文件,就可以看到Raw|Blame旁边的删除图标,不要忘记单击提交更改按钮。您可以看到您的文件已被删除。
我尝试了许多建议的选项,但似乎都不起作用(我不会列出各种问题)。我最终所做的(对我来说)简单而直观的工作是:
将整个本地回购转移到其他地方再次将回购从主机克隆到本地驱动器将文件/文件夹从#1中的原始副本复制回#2中的新克隆确保问题大文件不存在或排除在.gitignore文件中执行通常的gitadd/gitcommit/gitpush
这是我唯一的选择。
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch *.sql'
注意:用文件名或文件类型替换*.sql。要非常小心,因为这会经过每次提交并删除此文件类型。
编辑:注意-在这个命令之后,您将无法推或拉-您将看到拒绝“不相关的历史记录”,您可以使用“git push--force-u origin master”来推或拉
使用git rm从repo中删除文件后,可以使用BFG repo Cleaner从repo历史中完全轻松地删除文件。
如果要从存储库中删除文件,但将其保留在文件系统中(将被取消跟踪):
bykov@gitserver:~/temp> git rm --cached file1.txt
bykov@gitserver:~/temp> git commit -m "remove file1.txt from the repo"
如果要从repo和文件系统中删除文件,则有两个选项:
如果文件在索引中没有暂存更改:bykov@gitserver:~/temp>git rm file1.textbykov@gitserver:~/temp>gitcommit-m“删除file1.txt”如果文件在索引中进行了更改:bykov@gitserver:~/temp>git rm-f file1.textbykov@gitserver:~/temp>gitcommit-m“删除file1.txt”
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别