Git не будет синхронизировать файл только на одной конкретной машине
Проблема в следующем.
Код моей команды находится на bitbucket.org
Я клонировал репозиторий на моей машине, чтобы он стал локальным и
git log
Показывает все коммиты правильно, но у меня есть один файл с одной конкретной строкой кода, который просто не появляется (и коммит, который изменил его, присутствует в git log
).
git reset --hard <sha>
Где хэш коммита с этой строкой измененного кода не меняет его.
Я проверил источник в веб-интерфейсе, и эта строка кода есть. Я клонировал репо на другом устройстве и оно есть. Проблема возникает только на этой машине.
Я создал несколько локальных веток и заставил их отслеживать удаленные ветки, и этот файл просто не синхронизирован с ними.
Я использую эту строку кода для сравнения, но я не уверен, что ошибок не больше, чем эта.
Я использовал для установки и сброса прокси-сервера на этом компьютере с помощью команд:
git config --global http.proxy http://<user>:<pass>@<server>:<port>
git config --global --unset http.proxy
Для того, чтобы иметь возможность работать в университете, доступ к которому ограничен прокси-сервером. Может ли это иметь что-то общее с этой проблемой? Прокси сейчас отключен, конечно.
1 ответ
Убедитесь, что этот файл не был изменен локально, запустив git status
и убедившись, что его нет в списке.
Тогда, если вы точно знаете, как выглядит линия, вы должны бежать,
git log -S<snippet> /path/to/file
идентифицировать коммиты, которые изменили, добавили или удалили строку. (В качестве альтернативы вы можете просто запустить, git log /path/to/file
чтобы вручную просмотреть все коммиты, которые каким-либо образом изменили файл.)
Работайте со списком коммитов, просматривая изменения, внесенные каждым коммитом. Например, вы можете запустить git diff <commit-sha>^! -- <file>
обращая внимание на +/-
то есть, какие строки были добавлены и какие строки были удалены.