flo*_*urr 5 git branch visual-studio-code
我在 macOS 上使用 VS 代码 + git 版本 2.20.1。有时,当我在各个分支之间切换时,其他分支的文件错误地保留在当前分支中。
这些文件不存在.gitignore并且它们不是未提交的更改。
例如,如果我有那些提交的文件:
如果我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
Run Code Online (Sandbox Code Playgroud)
然而,file1不应该在这里,但是……
$ [git: branch_b] git status
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
工作树被认为是干净的,即使我rm或我修改了文件,git 也不会检测到任何更改:
$ [git: branch_b] rm file1
$ [git: branch_b] ls
file2
$ [git: branch_b] git status
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
这个问题不是系统性的,只是偶尔发生。在这个 SO question 中报告了一个类似的问题,它似乎与 VS Code(或其他代码编辑器)管理的一种锁有关
我想知道是否有办法避免这种行为,因此我是否可以避免使用git reset --hard+清理陈旧文件git clean -f -d。
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |