Как вставить обновленный git-хэш в Version.hpp?
Оригинальное название: Как заставить git игнорировать мой файл независимо от ветвления?
У меня есть следующий файл после оформления заказа, который работает как положено:
#!/usr/bin/ruby
cmd = ENV["HOME"] + "/dev/pitbull/cpp/bin/gen_version.rb --write"
`#{cmd}`
Сценарий gen_version.rb вычисляет временную метку, последний главный тег, хэш-заголовок HEAD и записывает вVERSION.hpp
файл, который также находится в Git.
Я тогда используюuse git update-index --assume-unchanged VERSION.hpp
чтобы мерзавец игнорировал мои изменения.
Теперь это прекрасно работает, если я останусь в своей ветке разработки. Но когда я пытаюсьget checkout master
Ям прикрутил:
git checkout master
error: Your local changes to the following files would be overwritten by checkout:
cpp/inc/core/util/VERSION.hpp
Please, commit your changes or stash them before you can switch branches.
Aborting
Как правильно настроить git, чтобы я мог обновлять VERSION.hpp при извлечении, но git игнорирует любые изменения этого файла, независимо от моей ветки?
РЕДАКТИРОВАТЬ Я изменил тему, поскольку окончательное решение фактически затрагивает более широкую тему, которая может быть более полезной для большего числа пользователей SO. Таким образом, вы можете прочитать эту тему двумя способами: с оригинальным заголовком и ответом ниже или с более широкой проблемой выше, снова со всем решением ниже.