问题
I want to call a Script that is located in the repository.
I could of course do the following:
#!/bin/sh
../../myscript.sh
but I think thats not nice ;)
so how do I get the path of my project within the post-commit script?
回答1:
When you're dealing with a non-bare repository, the post-commit
1 hook is run with a current working directory of the working tree of the repository. So, you don't need the ../../
.
If you want the full path of the script, you could always do:
SCRIPT=$(readlink -nf myscript.sh)
... or you could use git rev-parse --show-toplevel
to get an absolute path to the working directory:
SCRIPT=$(git rev-parse --show-toplevel)/myscript.sh
1 ... but note that this is not true of some other hooks, e.g. in a post-receive
hook in a non-bare repository, the current working directory is the .git
directory.
来源:https://stackoverflow.com/questions/5248587/how-to-get-project-path-in-hook-script-post-commitgit