文件是THERE,git只是告诉我它们已经从存储库中删除了。这可能是一个Github问题吗?
我已经导航到我的项目文件夹,这个文件夹在几天之内我还没有工作过,像往常一样,我跑了:
git status
但是,状态显示我的所有文件都已删除,而不是看到1个或2个文件。然后,在" Untracked Files"中,它显示了我需要添加的应用程序根目录中的所有文件和目录。
我不明白发生了什么,但我非常担心自上次提交以来我所做的任何工作都已消失。
我用git k
打开了git注册,在最顶层我看到了:
Local changes checked in to index but not committed.
在我看到的正下方:
master remotes/origins/master
注意:此项目违反github数据库。
以下是git status
命令的输出:
➜ mcp5_mobile git:(master) ✗ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: .gitignore
deleted: .rspec
deleted: Gemfile
deleted: README
deleted: README.md
deleted: Rakefile
deleted: app/assets/images/MSDS_icon_rgb.jpg
deleted: app/assets/images/MSDS_icon_rgb.png
deleted: app/assets/images/addtocart.gif
<Continues to list every single file in the app. Over 1,100 files.>
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
.rspec
Gemfile
README
README.md
Rakefile
app/
autotest/
colorpicker.css
config.ru
config/
db/
deploy/
doc/
eye.js
features/
layout.css
lib/
public/
sample.xml
script/
spec/
termios/
test/
vendor/
答案 0 :(得分:5)
这强烈暗示您(或您间接调用的内容)已删除或至少已重命名为.git/index
: 1
$ ls
LICENSE.txt x.txt
$ git status
On branch master
nothing to commit, working directory clean
$ mv .git/index .git/xindex
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: LICENSE.txt
deleted: x.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
LICENSE.txt
x.txt
$ mv .git/xindex .git/index
$ git status
On branch master
nothing to commit, working directory clean
在上面,我通过放回index
文件来恢复,但如果它真的消失了,你可以使用HEAD
&#39从git reset
提交重建它; s --mixed
(默认)模式:
$ rm .git/index
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: LICENSE.txt
deleted: x.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
LICENSE.txt
x.txt
$ git reset -- .
$ git status
On branch master
nothing to commit, working directory clean
[旁白:您不需要-- .
,因为这些也是默认值。这更强调我们正在重置.
提交中HEAD
内的每个路径。当然,我通过明确指定HEAD
来使用默认 - { - 1}} - 提交操作...]
1 或者,也许您确实将环境变量HEAD
设置为某处奇数。当GIT_INDEX
未设置时,Git会使用.git/index
,因此如果设置了某些内容,则会覆盖默认设置。
答案 1 :(得分:1)
git存储库是完全本地的。因此,它绝对不是github问题。
git status
比较了三种不同的东西。您的HEAD提交,索引和工作树。
在你的情况下,似乎文件存在于你的工作树和你的HEAD提交中,但是从索引中删除了。
正常git diff
将您的工作树与您的HEAD提交进行比较。 - 如果这个差异看起来很好,你可以简单地git add .
将工作树的内容写入索引。或者,您可以使用git reset
将HEAD提交的内容写入索引。
如果您一般担心丢失未提交的更改,则应更频繁地提交。未提交的更改通常很糟糕,因为git对它们一无所知,因此在发生奇怪事故时无法帮助恢复它们。
答案 2 :(得分:0)
一定是路径问题。我前几天试图安装一些宝石,并且必须使用PATH,PKG_CONFIG_PATH和C_INCLUDE_PATH做一些有趣的事情,以便编译一些本机库。无论如何,我重新启动了我的Mac,现在一切看起来都很正常。我无法理解它可能是什么,我使用相同的git可执行文件,我刚检查过。是否有一些git在启动时使用的支持库,我可能搞砸了?
一旦弄清楚,我会立即更新答案。如果您知道答案,我会奖励给您。四处欢迎,我很欣赏SO社区的快速反应,这是一个可怕的问题。