Search code examples
gitgit-assume-unchanged

How to `--assume-unchanged` file in project?


I have config file: conf/local.conf I run next command for it:

git update-index --assume-unchanged local.conf

and it is OK until I switch to another branch or pull.

How to preserve --assume-unchanged flag between branches?

UPD
Some examples what is coming on:

$ git checkout 296-ToS-component 
error: Your local changes to the following files would be overwritten by checkout:
    conf/local.conf
Please commit your changes or stash them before you switch branches.
Aborting
$ git checkout -f 296-ToS-component 
error: Entry 'conf/local.conf' not uptodate. Cannot merge.

I want it works as next:

  1. conf/local.conf is saved
  2. Branch is switched
  3. conf/local.conf is replaced by saved version

Solution

  • Don't use --assume-unchanged that should be used for performance problem for big files not changing and that are costly to hash when doing a git status.

    What you want is --skip-worktree that do nearly the same things but to handle files that you changed but don't want to commit.

    See https://stackoverflow.com/a/13631525/717372

    And it will probably (not sure, but hey!, that's what you must do...) fix your problem...