我想提示确认[是/否]每个命令git push和pull与git服务器联系。有没有办法包含任何命令/脚本来实现这一目标?所以用户可以给出输入,之后只有git继续进行该操作。
答案 0 :(得分:2)
首先,我不认为你会与这个改变结交很多朋友。如果有人输入git pull
,他已经证明他愿意联系远程服务器。在我看来,在这种情况下,没有必要用确认对话框来惹恼用户。
无论如何,如果您希望确认每个pull
和push
,则挂钩不是正确的工具,因为拉/推挂钩仅存在于服务器端。客户端没有pre-pull
,post-pull
,pre-push
或post-push
挂钩。所以,我们必须放弃这个钩子的想法。
您可以alias使用pull
和push
命令来查询它们是否真的应该拉/推。
查询很简单:
echo -n "really push? [y/n] "
read -s -n 1 really
if [[ $really == "y" ]]; then
# PULL/PUSH HERE
else
echo "aborting"
fi
Unfortunately,您不能对别名使用相同的名称。所以,简单的想法
[alias]
push = "!echo -n \"really push? [y/n]\";read -s -n 1 really;if [[ $really == \"y\" ]];then git push; else echo \"aborting\"; fi"
不起作用。
但是你还有两个其他选择来实现你想要的目标:
safepush
/ safepull
或类似名称.bashrc
git pull
和git push
{{1}}中设置别名(请参阅SU上的this question以设置多字别名 功能)答案 1 :(得分:1)
我相信你正在寻找Git hooks。
你必须自己把钩子放在那里。我认为你不能让用户将(客户端)钩子与其余代码一起拉出来。