ЧТО Я ХОЧУ СДЕЛАТЬ
У меня есть файл, который содержит конфиденциальные данные, поэтому я не хочу выталкивать содержимое этого файла на удаленный сервер.
ЧТО Я ДЕЛАТЬ?
Чтобы добиться этого, я сделал фиксацию, когда файл был пуст, и нажал этот пустой файл на сервер (GitHub). Затем заполните файл чувствительными данными и примените git update-index --skip-worktree path/to/file
. Но я ничего не сделал.
Теперь я пытаюсь переключить свою ветку, но я получаю эту ошибку:
error: Your local changes to the following files would be overwritten by checkout:
path/to/file
Please, commit your changes or stash them before you can switch branches.
Aborting
ПОЧЕМУ Я ИСПОЛЬЗУЮТ skip-worktree
ВМЕСТО assume-unchanged
?
Я прочитал несколько SO-вопросов по этому вопросу и нашел Borealid answer.
- предполагать-неизменным предполагает, что разработчик не должен изменять файл. Этот флаг предназначен для повышения производительности для не изменяющихся папок, таких как SDK.
- skip-worktree полезна, когда вы указываете git не касаться определенного файла, потому что разработчики должны его изменить. Например, если в главном репозитории вверх по потоку хранятся некоторые готовые к конфигурации файлы конфигурации, и вы не хотите случайно вносить изменения в эти файлы, --skip-worktree - именно то, что вы хотите.
После этого я нашел вопрос Джеффа и ответ VonC. Проблема Джеффа почти такая же, как у меня, и я следил за решением VonC. Однако это не работает для меня. Возможно, из-за разницы версий git. Потому что этот вопрос с 2012 года. Мы поговорили с VonC, и он сказал, чтобы задать это как новый вопрос, потому что он не мог вспомнить ответа.
Я попытался использовать вместе --assume-unchanged
и --skip-worktree
, а также рабочую группу мягкого реселлера. Но ничего не изменилось.
SO
Можете ли вы мне помочь в моей проблеме?
Спасибо.