Jak osadzić zaktualizowany git-hash w Version.hpp?

Oryginalny tytuł: Jak sprawić, by git ignorował mój plik niezależnie od rozgałęzienia?

Mam następujący plik po sprawdzeniu, który działa zgodnie z oczekiwaniami:

#!/usr/bin/ruby

cmd = ENV["HOME"] + "/dev/pitbull/cpp/bin/gen_version.rb --write"
`#{cmd}`

Skrypt gen_version.rb określa znacznik czasu, ostatni znacznik główny i skrót git HEAD i zapisuje doVERSION.hpp plik, który jest również w git.

Potem używamuse git update-index --assume-unchanged VERSION.hpp sprawić, by git zignorował moją zmianę.

Teraz działa to świetnie, jeśli pozostanę na moim polu rozwoju. Ale kiedy próbujęget checkout master, Mam przechlapane:

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

Jaka jest właściwa konfiguracja git, dzięki której mogę zaktualizować VERSION.hpp, gdy wyewidencjonowuję, ale git ignoruje wszelkie zmiany w tym pliku, niezależnie od mojej gałęzi?

EDYTOWAĆ Zmieniłem temat, ponieważ ostateczne rozwiązanie rzeczywiście dotyczy szerszego tematu, który może być bardziej przydatny dla większej liczby użytkowników SO. Możesz więc przeczytać ten temat na dwa sposoby: z oryginalnym tytułem i odpowiedzią poniżej lub z szerszym problemem powyżej, ponownie z całym rozwiązaniem poniżej.

questionAnswers(1)

yourAnswerToTheQuestion