终端 Git 跟踪与 VS Code git 跟踪不同步

Posted

技术标签:

【中文标题】终端 Git 跟踪与 VS Code git 跟踪不同步【英文标题】:Terminal Git tracking vs VS Code git tracking is not in sync 【发布时间】:2021-09-15 05:53:40 【问题描述】:

当我从终端添加、修改或删除文件时(我正在使用 iTerm2 -oh my zsh-git 扩展)暂存它们并提交它们,它不会反映在我的 VS 代码 git 跟踪中。

我在 VS 代码中的源代码控制部分仍然说更改不是使用 git 暂存或跟踪的。 而且我必须再次上演并提交它们。

当我在 VS 代码中打开终端并检查 git config --list 时,iTerm2 终端和 VS 代码终端都显示相同的配置列表。

当我从两个单独的终端检查时,日志和历史记录也是相同的。

只是当我从我的任何一个 iterm2 终端或从 VS Code 暂存或提交时,如果其他终端这样做,他们都不会认为更改已暂存或提交,并且仍然显示彼此未跟踪或未提交。

以前有人遇到过这样的问题吗?与 VS Code Git 设置有关吗?

【问题讨论】:

如果您在一个文件中编辑文件,然后在另一个文件中查看会发生什么?即使git status 没有显示任何更改,您是否可以看到您对另一个所做的编辑? 是的,我可以看到文件的变化 【参考方案1】:

以前有人遇到过这样的问题吗?

不,如果您确实使用 VSCode 进行了 another 提交,那么在使用 iTerm2 进行提交之后,git log 将无法向您显示相同的提交 (SHA1),因为提交元数据是它的创建日期。

尝试添加GitLens,以查看有关本地 Git 存储库的更多信息。

还要检查任何 GIT_xxx 环境变量(例如与 Repository location 相关的变量——GIT_DIRGIT_WORK_TREE),这可能解释了为什么默认情况下看不到 Git 存储库。

【讨论】:

确实如此,请参阅原始问题中添加的屏幕截图。感谢您提供 gitLens 参考和命令。我会试试看我的配置是否有问题。 @VaibhavChawale git status 确实不同,但我指的是两个git commit,它会给你两个不同的SHA1。 嗨@VonC - 我得到“git var GIT_AUTHOR_IDENT”命令的两个不同结果。两个结果具有相同的用户名和电子邮件 ID,但数值不同。第一个是“1625420409 -0500”,第二个是“1625337346 -0500”。你知道那是什么意思吗?我是否需要更新 gitconfig 或其他东西以使两个终端作者相同? @VaibhavChawale 这些应该是一样的。在两个环境中尝试git config -l --show-scope --show-origin,看看 Git 是否引用了相同的配置文件集。 两者都返回相同的值。

以上是关于终端 Git 跟踪与 VS Code git 跟踪不同步的主要内容,如果未能解决你的问题,请参考以下文章

使用 git 跟踪其他人的项目

Git Bash 构建在 VS Code 中无法从终端运行

在 VS Code 中使用 Git Bash 终端 - 如何强制它在内部打开

让 git status 显示未修改/未更改的跟踪文件?

在设置使用带有 VS Code 和集成 Git 终端的 anaconda 时卡住了

vs code 操作Git