Normally, pushing a change into a remote git repository does not update its
working tree. But it can be very convenient to only need to git push
(or git annex sync --content
) to a remote to update the files checked out
there.
Git has a way to let you do this, by setting receive.denyCurrentBranch
to updateInstead
in the remote repository. For example:
ssh remote
cd /path/to/repo
git config receive.denyCurrentBranch updateInstead
Now after a push to the remote, its working tree will be updated.
Changes in the remote's working tree can prevent this update from working; normally you'll want to avoid manually changing the remote's working tree, and only push changes into it in this configuration.
When the remote is using direct mode or
adjusted branches, you need the
git-annex post-receive
hook to be set up for pushes to update the remote's working tree.
This is a new feature in git-annex 6.20170217. If the remote was
initialized with an older version of git-annex, you will need to re-run
git annex init
in the remote after upgrading git-annex.