gitサーバーに接続するすべてのコマンド git push および pull に対して確認[はい/いいえ]を求めたいと思います。これを実現するコマンド/スクリプトを含める方法はありますか? そのため、ユーザーは入力を受け取ることができ、その後は git のみがその操作を続行します。
質問する
3824 次
2 に答える
2
まず、その変化であなたはあまり友達を作れないと思います。誰かが を入力した場合、その人git pull
はリモート サーバーに接続する意思があることをすでに証明しています。私の意見では、その場合、確認ダイアログでユーザーを悩ませる必要はありません。
とにかく、すべてを確認したい場合pull
およびpush
、プル/プッシュフックはサーバー側にのみ存在するため、フックは適切なツールではありません. クライアント側には、、、またはフックpre-pull
はありpost-pull
ません。したがって、フックのアイデアを破棄する必要があります。pre-push
post-push
代わりにコマンドとコマンドをエイリアスして、実際にプル/プッシュする必要があるかどうかをクエリで囲むことができます。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"
動作しません。
ただし、目的を達成するためのオプションが他に 2 つあります。
- git bord means を使用してエイリアスを呼び出します
safepush
/safepull
またはそのようなもの .bashrc
forgit pull
andにエイリアスを設定します(実際には関数であるマルチワードエイリアスの設定については、SUに関するこの質問git push
を参照してください)
于 2012-06-27T11:59:34.710 に答える
1
Git hooksを探していると思います。
ただし、フックを自分で配置する必要があります。ユーザーに (クライアント側の) フックを残りのコードと一緒に引っ張らせることはできないと思います。
于 2012-06-26T13:11:21.417 に答える