如何从存储库中删除“file1.txt”?
当前回答
删除特定文件
git-rm文件名
在一次快照中递归清理目录中所有未跟踪的文件
git-clean-fdx
其他回答
更一般地,git help至少可以帮助解决以下简单问题:
zhasper@berens:/media/Kindle/documents$ git help
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]
The most commonly used git commands are:
add Add file contents to the index
:
rm Remove files from the working tree and from the index
对于git rm不够,需要从历史中删除文件的情况:正如git filter分支手册页面现在本身建议使用git filter repo,而我今天不得不这样做,这里有一个使用该工具的示例。它使用示例回购https://example/eguser/eg.git
将存储库克隆到新目录gitclone中https://example/eguser/eg.git除了不需要的文件,保留所有内容。git filter repo--path file1.xt--反转路径将远程存储库原点添加回:git远程添加原点https://example/eguser/eg.git.gitfilter repo工具通过设计删除远程远程信息,并建议一个新的远程repo(参见第4点)。这对于大型共享回购来说是有意义的,但对于删除一个新添加的文件来说,可能是过度的,如本例所示。当对本地内容满意时,用它替换远程。git push——强制-u原点主控。由于历史已更改,需要强制。
还请注意,在加载和更改存储库历史记录之前,有关团队和项目动态的链接手册中有一个有用的“干运行”选项和一个很好的讨论。
转到项目目录并键入:
git filter-branch --tree-filter 'rm -f <deleted-file>' HEAD
在推送之后,强制从所有提交中删除文件。
git push origin --force --all
若你们并没有在本地回购中归档,而是在git回购中归档的话,那个么只需通过web界面在git repo中打开文件,然后在界面的右角找到“删除”按钮。单击此处,查看界面删除选项
我尝试了许多建议的选项,但似乎都不起作用(我不会列出各种问题)。我最终所做的(对我来说)简单而直观的工作是:
将整个本地回购转移到其他地方再次将回购从主机克隆到本地驱动器将文件/文件夹从#1中的原始副本复制回#2中的新克隆确保问题大文件不存在或排除在.gitignore文件中执行通常的gitadd/gitcommit/gitpush
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别