У меня есть репозиторий git, в котором есть несколько файлов. (На самом деле это мой репозиторий Advent of Code)
В этом репозитории есть файл, который я хочу сохранить на удаленном GitHub, но я не хочу, чтобы git обновлял его, даже если этот файл изменяется локально. Также я хочу, чтобы это поведение было автоматически на каждой машине, на которую я клонирую этот репозиторий.
Итак, в основном эти шаги:
- Создать файл и добавить начальный контент (v1)
- Зафиксировать и отправить файл в удаленную ветку
- Сделайте что-нибудь, чтобы git игнорировал все изменения в этом файле на всех компьютерах
- Изменить содержимое файла (v2)
Теперь я получил файл удаленно (v1) и локально (v2), но я не хочу ничего видеть об этом файле при запуске git status
. Кроме того, если я клонирую этот репозиторий (с файлом v1) на другой компьютер и внесу изменения в файл (теперь v3), я не хочу видеть что-либо в git status
об этом файле на другом компьютере.
Чтобы привести пример: я хочу добавить файл, который будет содержать мой файл cookie сеанса, в GitHub. Очевидно, я не хочу отправлять файл cookie сеанса на GitHub, просто заполнитель или что-то в этом роде. Но когда я запускаю программу, она должна содержать правильный файл cookie сеанса, поэтому мне нужно обновить файл с помощью фактического файла cookie. Теперь я не хочу, чтобы git обновлял этот файл до GitHub. И когда я клонирую этот репозиторий на другой компьютер, я хочу, чтобы он содержал заполнитель, как на удаленном компьютере, который я затем могу обновить вручную. Также git не должен обновлять файл с этой машины.
Сначала я попытался добавить его в .gitignore и запустить git rm --cached myfile
, но затем git также хочет удалить этот файл с удаленного компьютера.
Я пробовал с git update-index --assume-unchanged myfile
. Что технически делает то, что я хочу, просто не на всех других машинах, потому что это влияет только на мой локальный репозиторий git.
Есть ли способ выполнить то, что нужно сделать на шаге 3?
git update-index --skip-worktree myfile
на каждой машине, на которую я клонирую репозиторий, чтобы иметь возможность вносить изменения в файл и игнорировать его там. Есть ли способ передать эту информацию также на удаленный компьютер? - person Melvin S.   schedule 11.12.2020