Github:远程创建README文件,不会拉取到本地仓库

4
我在浏览 Github 网站上的一个仓库时注意到没有一个 Readme.md 文件,于是 Github 建议我创建一个。因此我就创建了这个文件。
在网页界面上添加了 Readme.md 文件后,我在本地仓库里更新并合并了最新的提交记录。虽然在 working directory 中有一些更改,但 index 中没有更改。我需要从另一个分支进行更改,所以我把更改藏起来,然后切换到 dev 分支。在 Git Extensions 中,我可以看到远程 origin/dev 分支比本地多了一个提交记录,所以我运行了 git pull 命令来快进到 Readme.md 提交记录。所有的操作都似乎很顺利。
但是,在这一点上我发现了一个问题——执行 git status 命令会显示:

deleted: README.md

所以,Git 知道应该有一个 README.md 文件与这个提交记录相关,但它不在 working directory 中。我用 Windows 资源管理器检查了 wd,发现 README.md 不在根目录中。我回到 Github 上查看,它在那里。我在 Git Extensions 的“文件树”中查看,也在那里。但它实际上没有物理地存在于计算机的文件夹中,并且 Git 知道它不存在。我重新运行了 git pull 和 git fetch,并尝试阅读 git fetch --help 和 git pull --help 帮助手册,并尝试了一些命令,但没有找到可以获取 README.md 文件的命令。
问题:如何拉取远程添加的文件?
我可以手动下载文件并将其放置在文件夹中,但我想知道如何正确地处理这个问题。如果能解释发生了什么事情就更好了。谢谢!

1
你能发布完整的 git status 输出吗? - LightBender
@LightBender - 感谢你的提醒。回顾git状态并思考到达这里的过程,我找到了解决方案 - 已发布答案。 - LightCC
1个回答

2
我在LightBender的评论中得知了问题,并且没有删除该问题,而是在此处发布根本原因和解决方案。
根本原因讨论: 在检出“dev”之前,我隐藏了我在“master”上所做的更改,但然后我在“dev”上取消了隐藏,计划在从远程拉取“README.md”之后将它们添加到新提交中。
事实证明,隐藏某些更改时,该隐藏有一种方式可以识别出“master”没有“README.md”,因此当我在“git pull”之后将隐藏文件应用于“dev”时,实际上删除了该文件。怀疑这一点,我重新隐藏了更改,然后 README.md 的删除消失了(从 git status ),在那之后,一个新的 git pull 正确地从其源代码中拉取了 README.md 到我的工作目录中。我没意识到 git stash 会把删除、添加和更改都存档……
因此,问题出现在我最初从“master”隐藏了更改,这些更改不应该首先被应用于“dev”。作为一个新手,我已经失去了方向。了解这种行为对于未来参考仍然是很好的。
解决方案: 我只需要简单地使用反隐藏命令(我不确定命令行中的反隐藏命令,我使用Git Extensions执行),然后从“dev”上将新的 README.md 提交挑选到“master”分支上即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接