# Update working copy on push without touching several files

2 messages from 2009-10-20 to 2009-10-20. Participants: Alex Amiryan, Thomas Rast.
Thread: https://gitlist.dev/t/21296

## Alex Amiryan, 2009-10-20 14:43

Subject: Update working copy on push without touching several files
Message-ID: <4ADDCC7A.8080607@amiryan.org>
URL: https://gitlist.dev/e/4ADDCC7A.8080607%40amiryan.org

```
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello. I am a web site developer. My team is developing web sites
locally using git. Online versions of websites are maintained with git
too. I need to have working copy of my remote git repository (online
version of the site) updated by git push (which I do locally). The
problem is that I have some files there (like database config) that have
to be different from local ones and they must not be updated on git
push. I have made "git update-index --assume-unchanged
incs/config.db.php" but they are not being updated only when I do "git
pull" remotely. I have used some post-update hooks which I found on the
net, but they all do "git reset --hard HEAD" which restores my config
files. Can you please help me to write post-update hook which updates
remote working copy but doesn't touch my assume-unchanged marked files.

- --
Alex Amiryan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkrdzHMACgkQ1KOfm1RDUTH3eQCgsEy+349Q/BnqLyl+6uQcZ871
lZgAn38ZlB4r5Utdt9PbxH/oCCIU2cjM
=2FQ/
-----END PGP SIGNATURE-----

```

## Thomas Rast, 2009-10-20 16:45

Subject: Re: Update working copy on push without touching several files
Message-ID: <200910201846.00650.trast@student.ethz.ch>
URL: https://gitlist.dev/e/200910201846.00650.trast%40student.ethz.ch
In-Reply-To: <4ADDCC7A.8080607@amiryan.org>

```
Alex Amiryan wrote:
> Online versions of websites are maintained with git
> too. I need to have working copy of my remote git repository (online
> version of the site) updated by git push (which I do locally). The
> problem is that I have some files there (like database config) that have
> to be different from local ones and they must not be updated on git
> push.

My best results so far were with special config branches that are
auto-merged in post-receive.  As a simple example, post-receive might
simply be

  #!/bin/sh

  git checkout -f master^0
  git merge config

-- 
Thomas Rast
trast@{inf,student}.ethz.ch

```
