我已经创建了git存储库,添加了代码并将其推送到GitHub。
然后在本地,我编辑了文件Eila.Analyser/Program.cs
,在第一次提交时添加到GitHub,保存了它,git status
说没有变化。
好吧,我认为,一定搞砸了,git reset --hard HEAD
,据我所知,应该还原所有内容,但我的文件不会被还原。
所以我觉得我做错了什么。我编辑根文件夹中的文件git status
- 显示有更改,工作为可疑,因此它适用于根文件夹中的文件,但不适用于子文件夹。
我错过了一些明显的东西吗?
更新:证据,我正在编辑的文件真的被提交(git log --stat
):
如果有帮助,树图片:
UPDATE2:好的,我以为我真的搞砸了,所以我删除了文件夹,我的解决方案在哪里,再次从gitHub克隆,我的本地代码仍然与gitHub中的现有代码不同,git status看不到任何变化, git log origin/master..HEAD
什么都没有。
答案 0 :(得分:11)
尝试运行git update-index --really-refresh
。
我确实在Windows上遇到了类似的问题并解决了这个问题。
您还应该使用core.ignoreStat
检查git config
选项。
答案 1 :(得分:9)
所以最后它奏效了。我删除了本地文件夹中已更改的文件 - 然后突然git status
开始看到这些文件丢失了。所以我已经恢复它们并且git status
开始看到,文件被修改了。
答案 2 :(得分:6)
有时我遇到同样的问题,特别是当我有子文件夹时,这是另一个git repo本身。解决方案是:重命名文件夹。尝试将文件夹名称切换为其他名称。提交,然后重命名。 如果子文件夹本身是另一个Git仓库,并且您希望它完全脱离主流,并按照您的仓库,则应首先删除该子文件夹的远程文件。
答案 3 :(得分:3)
对我来说,解决方案是
重命名未跟踪的文件夹
答案 4 :(得分:1)
我的案子正是提摩西所说的。我有一个也是git repo的子文件夹。我从子文件夹中删除了git,但“父git”已停止对其进行跟踪。通过Windows资源管理器重命名文件夹不能解决问题,但通过git重命名可以解决问题。 因此,我做了'$ git mv folder-name folder-name-temp'..比重命名回其原始名称:)
答案 5 :(得分:0)
对我来说,问题是我的.gitignore文件中有一个不存在的文件名。从.gitignore删除此无效的文件名解决了该问题。另外,我从子目录中删除了所有.gitignore文件,只保留了顶级.gitignore文件。
答案 6 :(得分:0)
PROBELM(以我为例)
执行git checkout -b <branch_name>
无效,尽管位于gitlab服务器上,但该分支中的文件夹和文件在本地仍然不可见。
解决方案
在该分支中然后在本地复制了最后一次提交的SHA哈希:
git checkout -b <branch_name> #SHA Hash
现在我看到了预期的子目录和文件。
答案 7 :(得分:0)
我遇到了同样的问题,但是意识到我的问题是高层的忽略。 我忽略了.php文件,因此无法更改.php文件中的任何内容
答案 8 :(得分:0)
我试过 git update-index --really-refresh
并重命名文件夹,但没有成功。这虽然有效:
答案 9 :(得分:-1)
我遇到了同样的问题。 Giedrius的解决方案也适用于我;我删除了整个目录并重新添加了它。这解决了问题