如何从最新提交中删除文件?
当前回答
我们可以采取的另一种方法是:
删除文件使用删除的文件进行新提交执行交互式重基并压缩两个提交推
其他回答
注意!如果您只想从上一次提交中删除一个文件,并将其保存在磁盘上,请阅读上面juzzlin的回答。
如果这是您最后一次提交,并且您希望从本地和远程存储库中完全删除该文件,您可以:
删除文件git-rm<file>带有修正标志的commit:gitcommit--修正
修正标志告诉git再次提交,但“合并”(不是合并两个分支的意思)这次提交与最后一次提交。
如注释中所述,在这里使用gitrm就像使用rm命令本身一样!
从git 2.23开始,您可以简单地使用以下命令:
git restore --staged <file>
如果你还没有将你的更改推送到git
git reset --soft HEAD~1
它将重置所有更改并恢复为一次提交
如果这是您最后一次提交,并且您希望从本地和远程存储库中删除文件,请尝试以下操作:
git rm <file>
git commit --amend
甚至更好:
先重置
git reset --soft HEAD~1
重置不需要的文件
git reset HEAD path/to/unwanted_file
再次提交
git commit -c ORIG_HEAD
我只想补充上面的答案,因为我必须运行一个额外的命令:
git reset --soft HEAD^
git checkout origin/master <filepath>
干杯
我将用例子向你解释。设A、B、C为3次连续提交。提交B包含一个不应提交的文件。
git log # take A commit_id
git rebase -i "A_commit_ID" # do an interactive rebase
change commit to 'e' in rebase vim # means commit will be edited
git rm unwanted_file
git rebase --continue
git push --force-with-lease <branchName>
推荐文章
- 如何点Go模块的依赖在Go。Mod到回购中的最新提交?
- 为什么调用git分支——unset-upstream来修复?
- Windows git“警告:LF将被CRLF取代”,这是警告尾巴向后吗?
- git中的哈希冲突
- git可以自动在空格和制表符之间切换吗?
- Git暂存文件列表
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时