3

gitサーバーに接続するすべてのコマンド git push および pull に対して確認[はい/いいえ]を求めたいと思います。これを実現するコマンド/スクリプトを含める方法はありますか? そのため、ユーザーは入力を受け取ることができ、その後は git のみがその操作を続行します。

4

2 に答える 2

2

まず、その変化であなたはあまり友達を作れないと思います。誰かが を入力した場合、その人git pullはリモート サーバーに接続する意思があることをすでに証明しています。私の意見では、その場合、確認ダイアログでユーザーを悩ませる必要はありません。

とにかく、すべてを確認したい場合pullおよびpush、プル/プッシュフックはサーバー側にのみ存在するため、フックは適切なツールではありません. クライアント側には、、、またはフックpre-pullはありpost-pullません。したがって、フックのアイデアを破棄する必要があります。pre-pushpost-push

代わりにコマンドとコマンドをエイリアスして、実際にプル/プッシュする必要があるかどうかをクエリで囲むことができます。pullpush

クエリは単純です。

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またはそのようなもの
  • .bashrcfor git pullandにエイリアスを設定します(実際には関数であるマルチワードエイリアスの設定については、SUに関するこの質問git pushを参照してください)
于 2012-06-27T11:59:34.710 に答える
1

Git hooksを探していると思います。

ただし、フックを自分で配置する必要があります。ユーザーに (クライアント側の) フックを残りのコードと一緒に引っ張らせることはできないと思います。

于 2012-06-26T13:11:21.417 に答える