VS Code + Git сохраняет файлы других веток - PullRequest
0 голосов
/ 10 июля 2019

Я использую VS code + git version 2.20.1 на macOS. Иногда, когда я переключаюсь между ветками, файлы других ветвей ошибочно сохраняются в текущей.

Эти файлы отсутствуют в .gitignore и не являются незафиксированными изменениями.

Например, если у меня есть эти файлы:

  • branch_a: файл1, файл2
  • branch_b: file2

если я извлекаю branch_a в VS Code, я фиксирую все изменения и затем переключаюсь на branch_b, в моем рабочем каталоге все еще есть file1.

Как ни странно, file1 как-то "невидим" для мерзавца. Действительно, это не считается потенциальным изменением 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

Эта проблема не является систематической, но это случается только иногда. О подобной проблеме сообщалось в этом вопросе SO , и, похоже, она связана с некой блокировкой, управляемой кодом VS (или другими редакторами кода)

Мне интересно, есть ли способ избежать такого поведения и, следовательно, если я могу избежать очистки устаревших файлов с помощью git reset --hard + git clean -f -d.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...