我只想编辑/修改旧Git提交的文本。
我跑了下面:
$ git rebase -i a41a407d6f53328d49267e6a8429b9492f023629
error: The following untracked working tree files would be overwritten by checkout:
admin/roles/allowassign.php
admin/roles/allowoverride.php
admin/roles/assign.html
admin/roles/assign.php
admin/roles/manage.html
admin/roles/manage.php
admin/roles/managetabs.php
admin/roles/override.html
admin/roles/override.php
Aborting
could not detach HEAD
但是,git status
不会列出任何未跟踪的文件:
$ git status
On branch dev
nothing to commit, working directory clean
请注意,admin/roles是存储库的子模块:
$ git submodule
77c5addc1b210256da9171e3b286ffa5addd2478 admin/roles (heads/dev)
并列出忽略的文件:
$ git status --ignored
On branch duf-moodle-dev
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
blocks/moodleblock.class.php.bak
filter/tex/mimetex.exe
lib/smarty/COPYING.lib
nothing to commit, working directory clean
保存GIT存储没有结果:
$ git stash save --include-untracked
No local changes to save
我阅读,集成到Explorer Shell中,会有这样的结果。目前Git扩展,GIT GUI和SmartGIT都集成到上下文Shell中。这会导致问题吗?
我的建议是,问题的根源是子模块的使用。我保留了一些修改作为子模块。
有什么想法,为什么基地互动给是错误和如何修复它?
此外,甚至可以有一个解决方案来编辑/修改一个旧的提交描述,而不使用rebase...
5条答案
按热度按时间8gsdolmq1#
解决方案是从主存储库中删除子模块(unsubmodule)。然后就可以进行重定基了。
ovfsdjhp2#
我也遇到过类似的问题,但在我的例子中,这是由于在使用Windows时改变文件名中的字母大小写引起的(这似乎让git对它感到困惑)。我通过使用虚拟化的linux(可能是一个docker容器)解决了这个问题,检查出那个分支,并从那里执行
rebase
。kt06eoxx3#
对我来说,即使是未跟踪的文件,rebase也能很好地工作,直到我前一天做了一些不寻常的步骤(在不同的分支上重置头部等),突然在不同的分支(到master上)上的rebase停止工作。
这有助于:
贷方:https://ageekandhisblog.com/git-force-overwrite-of-untracked-working-tree-files/
fcipmucu4#
我花了很多时间在这个问题上自己当我有以下返回:
一般来说,你只需要rm文件,然后 checkout 。你也可以,添加和隐藏它们。也许首先考虑强制 checkout ,如:
我可以建议也看看The following untracked working tree files would be overwritten by checkout,这对我帮助很大!
ss2ws0br5#
我在Drupal中重定基时遇到了这个问题,我必须删除它抱怨的文件,提交删除,重定基并通过跳过补丁来解决合并冲突,然后删除我刚刚提交的文件。