diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-02-17 14:11:26 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-02-17 14:11:26 -0800 |
commit | 6bb32e61faff1d96d84d668f44b4440210b0e23c (patch) | |
tree | aea24c30b07a7bfb8869945bba6a5d75701cc1c4 /githooks.txt | |
parent | 0bcc239ed214940dcb68139f571d91bf04f1a0c9 (diff) | |
download | git-htmldocs-6bb32e61faff1d96d84d668f44b4440210b0e23c.tar.gz |
Autogenerated HTML docs for v2.3.0-130-g3188a
Diffstat (limited to 'githooks.txt')
-rw-r--r-- | githooks.txt | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/githooks.txt b/githooks.txt index 9ef246937..7ba0ac965 100644 --- a/githooks.txt +++ b/githooks.txt @@ -341,6 +341,36 @@ Both standard output and standard error output are forwarded to 'git send-pack' on the other end, so you can simply `echo` messages for the user. +push-to-checkout +~~~~~~~~~~~~~~~~ + +This hook is invoked by 'git-receive-pack' on the remote repository, +which happens when a 'git push' is done on a local repository, when +the push tries to update the branch that is currently checked out +and the `receive.denyCurrentBranch` configuration variable is set to +`updateInstead`. Such a push by default is refused if the working +tree and the index of the remote repository has any difference from +the currently checked out commit; when both the working tree and the +index match the current commit, they are updated to match the newly +pushed tip of the branch. This hook is to be used to override the +default behaviour. + +The hook receives the commit with which the tip of the current +branch is going to be updated. It can exit with a non-zero status +to refuse the push (when it does so, it must not modify the index or +the working tree). Or it can make any necessary changes to the +working tree and to the index to bring them to the desired state +when the tip of the current branch is updated to the new commit, and +exit with a zero status. + +For example, the hook can simply run `git read-tree -u -m HEAD "$1"` +in order to emulate 'git fetch' that is run in the reverse direction +with `git push`, as the two-tree form of `read-tree -u -m` is +essentially the same as `git checkout` that switches branches while +keeping the local changes in the working tree that do not interfere +with the difference between the branches. + + pre-auto-gc ~~~~~~~~~~~ |