我想为每个与 git 服务器联系的命令 git push 和 pull 提示确认 [yes/no]。有没有办法包含任何命令/脚本来实现这一点?所以用户可以给出输入,之后只有 git 继续进行该操作。
问问题
3824 次
2 回答
2
首先,我认为你不会因为这种变化而交到很多朋友。如果有人输入git pull
,他已经证明他愿意联系远程服务器。在我看来,在这种情况下,没有必要用确认对话框来惹恼用户。
无论如何,如果你想确认每个pull
and push
,钩子不是正确的工具,因为拉/推钩子只存在于服务器端。客户端没有pre-pull
, post-pull
,pre-push
或post-push
钩子。所以,我们必须抛弃钩子的想法。
您可以为and命令取别名,以便用查询是否真的应该拉/推它们来包围它们。pull
push
查询很简单:
echo -n "really push? [y/n] "
read -s -n 1 really
if [[ $really == "y" ]]; then
# PULL/PUSH HERE
else
echo "aborting"
fi
不幸的是,您不能为别名使用相同的名称。所以,很容易想到
[alias]
push = "!echo -n \"really push? [y/n]\";read -s -n 1 really;if [[ $really == \"y\" ]];then git push; else echo \"aborting\"; fi"
不起作用。
但是您还有另外两个选择来实现您想要的:
- 使用 git bord 表示并调用别名
safepush
/safepull
或类似的东西 .bashrc
在你的forgit pull
and中设置一个别名git push
(请参阅SU 上的这个问题以设置实际上是函数的多字别名)
于 2012-06-27T11:59:34.710 回答
1
我相信您正在寻找Git hooks。
不过,您必须自己将钩子放在那里。我认为您不能让用户将(客户端)钩子与其余代码一起拉动。
于 2012-06-26T13:11:21.417 回答