为什么在执行 git 拉入 Visual Studio 代码后我有未提交的更改?

Why do I have uncommitted changes after doing a git pull in Visual Studio Code?

在 Visual Studio 代码 (VSC) 中,我打开了一个文件夹。该文件夹对应于本地 git 存储库,其远程存储库位于 GitHub 上。 2 个回购是同步的。

接下来,我通过手动上传文件并提交将文件添加到远程仓库。

然后,我使用 VSC 中的同步按钮同步本地存储库。在我这样做之后,在 VSC 源代码管理视图中,它显示了 1 个待定更改,这是我刚刚添加到远程存储库的文件,该文件在 VSC 中列为“未提交”更改。

这与我之前在命令行或 VSC 以外的工具(例如 Eclipse)上使用 Git 的方式不同。我已经习惯了这种类型的工作流程如何导致 Git 快进,其中刚刚添加到远程仓库的文件不会显示为未提交的更改;相反,由于 git-pull.

,该文件只会在本地存储库中可用

就目前而言,每次发生此工作流时,我都必须毫无意义地重新提交本地存储库中的“未提交”更改,只是为了使 2 个存储库再次同步。

我假设我在 VSC 中做错了什么或者在 VSC 中配置错误。

任何thoughts/suggestions?

有一个叫做 rysnc 的扩展可以用来实现这个。

Sync-Rsync文档清楚地说明了它的功能。

有关此问题的更多讨论,这里有一个类似的问题:

https://github.com/microsoft/vscode-remote-release/issues/196

首先,确保您在 .
之前有一个提交 你应该看到:

其次,我建议 rebase when syncing,将 VSCode git.rebaseWhenSync 设置为 true。

这应该重播您的提交,确保已提交的文件保持提交状态。

当您手动上传文件并将其提交到 github 时,它是在您的工作目录中创建的,但 从未提交到您的本地存储库 。所以很自然地在源代码管理视图中(基本上 git status)它显示为未提交。

为了避免混淆,我会更改您的工作流程,从不将文件直接上传到远程存储库。相反,先将其提交到您的本地存储库,然后推送到远程。

原来这与VSC无关。问题的解决其实是基于文件权限的SMB挂载设置和文件权限敏感度的git配置设置。

描述了解决方案