Home > OS >  suppress detached head warning in Bash script
suppress detached head warning in Bash script

Time:06-12

I'm writing a shell script to checkout branches or tags in multiple Git repositories. Sometimes, the checkout is to move HEAD to a tagged commit which does not have a branch associated with it. That is intentional, and it causes a detached HEAD state. While looking for a way to suppress the lengthy detached HEAD warning just for the current script (not in the config), I found enter image description here

How can this code be modified to suppress the detached HEAD message just for the script?

CodePudding user response:

The order of flags to git matters:

git <flag-set-1> <command> <flag-set-2> <arguments>

runs git with flag-set-1 so that git runs command with flag-set-2 arguments while obeying flag-set-1. The -c advice.detachedHead=false argument is an argument to git, not to any of the command commands. That is, you want:

git -C "$path" -c advice.detachedHead=false checkout ...

rather than:

git -C "$path" checkout -c advice.detachedHead=false ...

(The git clone command accepts very similar -c arguments in its flag-set-2, but don't let that mislead you!)

  • Related