gpt4 book ai didi

git - VS Code + Git 保留其他分支的文件

转载 作者:行者123 更新时间:2023-12-04 11:48:04 24 4
gpt4 key购买 nike

我在 macOS 上使用 VS 代码 + git 版本 2.20.1。有时,当我在各个分支之间切换时,其他分支的文件错误地保留在当前分支中。

这些文件不存在于 .gitignore 中它们不是未提交的更改。

例如,如果我有那些​​提交的文件:

  • 分支_a:文件1,文件2
  • 分支_b:文件2

  • 如果我 checkout branch_a在 VS Code 中,我提交所有更改,然后切换到 branch_b ,我还有 file1在我的工作目录中。

    奇怪的是, file1以某种方式对 git 来说是“不可见的”。实际上,这不被视为对 branch_b 的潜在更改。 .即使它实际上在文件系统上,它也会被忽略。让我从命令行的角度澄清这一点。
    $ [git: branch_a] ls
    file1 file2
    $ [git: branch_a] git status
    nothing to commit, working tree clean

    $ git checkout branch_b
    Switched to branch 'branch_b'
    Your branch is up to date with 'origin/branch_b'.

    $ [git: branch_b] ls
    file1 file2

    然而, file1不应该在这里,但是……
    $ [git: branch_b] git status
    nothing to commit, working tree clean

    工作树被认为是干净的,即使我 rm或者我修改了文件,git 没有检测到任何更改:
    $ [git: branch_b] rm file1
    $ [git: branch_b] ls
    file2

    $ [git: branch_b] git status
    nothing to commit, working tree clean

    这个问题不是系统性的,只是偶尔发生。已报告类似问题 in this SO question它似乎与 VS Code(或其他代码编辑器)管理的一种锁有关

    我想知道是否有办法避免这种行为,因此我是否可以避免使用 git reset --hard 清理陈旧文件+ git clean -f -d .

    最佳答案

    在转移到其他分支之前,请确保您已经提交了一个分支中的所有文件,否则其他分支的文件将不会反射(reflect)在当前分支中。

    关于git - VS Code + Git 保留其他分支的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56969697/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com