我注意到在Github网站上浏览一个回购时没有Readme.md
文件,Github建议我做一个。所以我做到了。
在Web界面中添加Readme.md
文件并提交到dev
分支后,我回到本地仓库,将Readme下拉并更新以包含最新提交。我确实在working directory
中进行了一些更改,但在index
中没有任何更改。我需要从另一个分支进行更改,因此我隐藏了更改并在dev
上结帐。在Git Extensions中,我可以看到远程origin/dev
分支提前提交,所以我运行了一个git pull to fastforward to Readme.md
commit。这一切似乎都有效。
但是,此时我发现了一个问题 - git status
显示:
已删除:README.md
所以,git知道这个提交应该是README.md
,但它不在工作目录中。我用Windows资源管理器检查了wd,README.md
不在根目录中。我在Github上查了一下,就在那里。我查看了"文件树"在Git Extensions中,它也在那里。但它并没有在文件夹中的计算机上,并且git知道它不在那里。我重新考虑git pull
和git fetch
,并尝试阅读git fetch --help
和git pull --help
手册页,并尝试了一些命令,但没有任何内容可以删除我README.md
可以找到。
我可以手动下载文件并将其放在文件夹中,但我想知道如何正确地执行此操作。关于发生了什么的解释的额外点。谢谢!
答案 0 :(得分:1)
当LightBender在评论中询问完整的git状态时,我发现了问题,而不是删除问题,我将在此处发布根本原因和解决方案。
在结帐dev
之前,我隐藏了master
上的更改,但随后我在dev
上取消了这些更改,计划在下拉{{1}后将其添加到新的提交中来自遥控器。
事实证明,存储以某种方式意识到README.md
没有README.md,因此当我在master
之后将存储应用于dev
时,实际上已删除了文件。怀疑这一点,我重新修改了更改,git pull
的删除消失了(来自README.md
),之后新的git status
确实正确拉git pull
从README.md
下到我的工作目录。我没有意识到origin/dev
会删除删除以及添加和更改......
所以,问题出现了,因为我最初隐藏了git stash
之后的更改,并且这些更改不应该首先在master
上进行。作为一个新手,我忘记了流动。了解这种行为以供将来参考仍然很好。
我能够在dev
上简单地解压缩(不确定用于unstash的git命令 - 我使用Git Extensions),然后从{{1}挑选新的master
提交转到README.md
。