Ini adalah kait pra-komit yang menggantikan gumpalan symlink dalam indeks, dengan konten dari symlink tersebut.
Masukkan ini .git/hooks/pre-commit
, dan membuatnya dapat dieksekusi:
#!/bin/sh
# (replace "find ." with "find ./<path>" below, to work with only specific paths)
# (these lines are really all one line, on multiple lines for clarity)
# ...find symlinks which do not dereference to directories...
find . -type l -exec test '!' -d {} ';' -print -exec sh -c \
# ...remove the symlink blob, and add the content diff, to the index/cache
'git rm --cached "$1"; diff -au /dev/null "$1" | git apply --cached -p1 -' \
# ...and call out to "sh".
"process_links_to_nondir" {} ';'
# the end
Catatan
Kami menggunakan fungsionalitas yang sesuai dengan POSIX sebanyak mungkin; Namun, diff -a
tidak sesuai dengan POSIX, mungkin antara lain.
Mungkin ada beberapa kesalahan / kesalahan dalam kode ini, meskipun agak diuji.