Hi, Magne Land wrote: > From: Magne Land <magne.land@xxxxxxxxxxxx> > > This can happen when using 'git rebase -i’: > could not detach HEAD > > Based on discovering this Stack Overflow discussion: > https://stackoverflow.com/questions/25561485/git-rebase-i-with-squash-cannot-detach-head > --- > Documentation/githooks.txt | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Thanks for investigating and writing this. May we forge your sign-off? See Documentation/SubmittingPatches section [[sign-off] 'Certify your work' for more about what this means. The above leaves one question unanswered: is this the *right* behavior for "git checkout" to have? I.e. is it useful for "git checkout" to fail when the post-checkout hook fails, or would it be better for it to e.g. simply print a message and exit with status 0? Not a rhetorical question: I'm asking because I don't know the answer. What do you think? Thanks, Jonathan > --- a/Documentation/githooks.txt > +++ b/Documentation/githooks.txt > @@ -166,7 +166,9 @@ worktree. The hook is given three parameters: the ref of the previous HEAD, > the ref of the new HEAD (which may or may not have changed), and a flag > indicating whether the checkout was a branch checkout (changing branches, > flag=1) or a file checkout (retrieving a file from the index, flag=0). > -This hook cannot affect the outcome of 'git checkout'. > + > +If this hook exits with a non-zero status, 'git checkout' will exit with the > +same status. > > It is also run after 'git clone', unless the --no-checkout (-n) option is > used. The first parameter given to the hook is the null-ref, the second the