Apa*_*ith 3 git merge github githooks
我只是想运行一个git hook(post-merge)来验证最近一次pull中发生的所有更改。
这是我的合并后脚本
#/usr/bin/env bash
echo "======> following are changes made to local repo <======"
git fetch && git log ..origin/master --pretty=format:"%s - %ar by %an (%h)"
echo "=======> ****************** <========"
Run Code Online (Sandbox Code Playgroud)
我已获得必要的文件许可 chmod +x post-merge
git fetch && git log ..origin/master --pretty=format:"%s - %ar by %an (%h)"当我手动运行该命令时,它运行完美。
但是当我做一个git pull origin master它只显示
echo "======> following are changes made to local repo <======"
echo "=======> ****************** <========"
Run Code Online (Sandbox Code Playgroud)
因为同时git pull执行git fetch和git merge我尝试
#/usr/bin/env bash
echo "======> following are changes made to local repo <======"
git log ..origin/master --pretty=format:"%s - %ar by %an (%h)"
echo "=======> ****************** <========"
Run Code Online (Sandbox Code Playgroud)
我要去哪里错了?
git版本1.9.1
谢谢
因为在之后post-merge执行,即在执行时,您的HEAD与相同,所以输出为空。 git pullpost-mergeorigin/master
尝试这个:
#/usr/bin/env bash
echo "======> following are changes made to local repo <======"
git fetch && git log ORIG_HEAD..origin/master --pretty=format:"%s - %ar by %an (%h)"
echo "=======> ****************** <========"
Run Code Online (Sandbox Code Playgroud)
键为ORIG_HEAD,这是危险操作(包括合并)之前HEAD的最后一个值
有关在Git中ORIG_HEAD读取HEAD和ORIG_HEAD的更多信息