当前位置:  开发笔记 > 编程语言 > 正文

git说我有未分阶段的更改,但我没有显示它们

如何解决《git说我有未分阶段的更改,但我没有显示它们》经验,为你挑选了1个好方法。

我正在我要删除的第二个文件上执行此命令(第一个是JetBrains的.idea文件夹文件,现在是.gitignore),但我无法:

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch gf5/console/basic.php' --prune-empty --tag-name-filter cat -- --all
Cannot rewrite branches: You have unstaged changes.

那么我如何知道git在没有列出的时候引用的"未分级"文件,以及如何解决这个问题呢?

PS问题不是藏匿,我没有任何东西,也没有对这个回购进行过任何抨击.

注意:我做了一个git status并收到了这个:

Changes to be committed:
  (use "git reset HEAD ..." to unstage)

    modified:   gf5/console/basic.php

Changes not staged for commit:
   (use "git add ..." to update what will be committed)
   (use "git checkout -- ..." to discard changes in working directory)

//(and a whole long list of files)

Oliver Willi.. 8

AHA!我弄清楚发生了什么.阅读最后几句,以获得一点见解.

答案是先做:

git status

这显示了RED中的修改过的文件,我认为这意味着它们在git的脑海中以某种方式被"删除".然后我做了:

git add --all

从那里我使用SourceTree提交了所有暂存的文件(抱歉,我没有一直使用命令行).我继续前进,同时将更改推送到服务器,但这是可选的.

上面的命令然后成功运行.

当我尝试在不同的文件上运行上述命令时,我遇到了同样的问题.所以我再次运行git status,结果发现我刚刚从历史记录中删除的文件仍然存在,所以你需要这样做:

git rm /previous_file_you_just_removed_from_history.php

另外要说明的是,filter-branch命令将从所有提交中删除该文件的历史记录,但它不会删除您对该文件所做的更改.也就是说,删除文件仍然是您在此之前所做的所有更改的总和.我希望这有助于为其他人明确这个概念.



1> Oliver Willi..:

AHA!我弄清楚发生了什么.阅读最后几句,以获得一点见解.

答案是先做:

git status

这显示了RED中的修改过的文件,我认为这意味着它们在git的脑海中以某种方式被"删除".然后我做了:

git add --all

从那里我使用SourceTree提交了所有暂存的文件(抱歉,我没有一直使用命令行).我继续前进,同时将更改推送到服务器,但这是可选的.

上面的命令然后成功运行.

当我尝试在不同的文件上运行上述命令时,我遇到了同样的问题.所以我再次运行git status,结果发现我刚刚从历史记录中删除的文件仍然存在,所以你需要这样做:

git rm /previous_file_you_just_removed_from_history.php

另外要说明的是,filter-branch命令将从所有提交中删除该文件的历史记录,但它不会删除您对该文件所做的更改.也就是说,删除文件仍然是您在此之前所做的所有更改的总和.我希望这有助于为其他人明确这个概念.


不,不是"删除",只是修改.
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有