Как вставить обновленный 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. Таким образом, вы можете прочитать эту тему двумя способами: с оригинальным заголовком и ответом ниже или с более широкой проблемой выше, снова со всем решением ниже.

Ответы на вопрос(1)

Ваш ответ на вопрос