元のタイトル: ブランチに関係なく、git がファイルを無視するようにする方法は?
期待どおりに機能する次のチェックアウト後のファイルがあります。
#!/usr/bin/ruby
cmd = ENV["HOME"] + "/dev/pitbull/cpp/bin/gen_version.rb --write"
`#{cmd}`
gen_version.rb スクリプトは、タイムスタンプ、最後のマスター タグ、および HEAD git ハッシュを計算し、同じく git にあるVERSION.hpp
ファイルに書き込みます。
次にuse git update-index --assume-unchanged VERSION.hpp
、gitに変更を無視させるために使用します。
さて、開発ブランチにとどまると、これはうまく機能します。しかし、私が試してみると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
チェックアウト時に VERSION.hpp を更新できるようにするための正しい git セットアップは何ですか?
EDIT 最終的な解決策は、実際にはSOのより多くのユーザーにとってより役立つ可能性のあるより広いトピックに対処するため、トピックを変更しました。したがって、このトピックは 2 つの方法で読むことができます。元のタイトルと以下の回答、または上記のより広範な問題、および以下のソリューション全体です。