我的Git状态显示我工作树中的所有文件deleted
不正确,它们仍在那里。
要解决此问题,我应该执行git reset --hard
,重置我对其他文件的所有修改。
知道如何解决它或它是如何发生的?
git status
输出:
On branch develop
Your branch is behind 'origin/develop' by 15 commits, and can be fast-forwarded.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: .gitignore
deleted: v3/.gitignore
deleted: v3/index-test.php
deleted: v3/index.php
deleted: v3/protected/.gitignore
deleted: v3/protected/.htaccess
deleted: v3/protected/Gruntfile.js
编辑:以上不是完整的git status
输出。
我正在处理的那些文件不会被删除。
答案 0 :(得分:2)
如果您使用
从本地磁盘删除了文件rm file.name
如果已将file.name
检入git。那么你应该发出这个命令
git rm file.name
告诉git你不想让它再跟踪那个文件
答案 1 :(得分:1)
git co my_annoying_file
git rm my_annoying_file
git commit -m "removing annoying file"
现在它们真正从git tracking
中删除了 对于这种情况, ...也git reset --hard
可能会变脆,请考虑git reset HEAD my_annoying_file
答案 2 :(得分:1)
如果唯一的问题是某些文件已从索引中删除,但仍在工作树中,那么您需要做的就是:
git reset
默认情况下,git reset
默认为混合模式,执行此操作:
- - 混合
- 重置索引但不重置工作树(即更改的文件被保留但未标记为 提交)并报告尚未更新的内容。这是默认操作。
因此,它将保持您的更改完整,但不会取消所有内容。如果您发现文件 实际上已丢失,那么您需要检查它们以恢复它们:
git checkout -- path/to/file/or/dir
如果您有大量文件,可以使用git status
和cut
来解析xargs
的简短形式。我会把它作为读者的练习,因为你声称所有的文件都在那里。