問題タブ [githooks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git post-update フックから「git pull」を呼び出す
gitolite を使用して中央の git リポジトリをセットアップしました。
ユーザーがレポにプッシュするたびに、他の場所でプルを実行し、続いて自動テストを実行するようにフックを設定したいと考えています。
これまでのところ、プルを実行したいだけです。
hooks ディレクトリに、更新後に次のスクリプト名を作成しました。
./post-update を使用してこのスクリプトを呼び出すと、必要なことが正確に実行されます。
ただし、フックすると自動的に呼び出されるたびに、次のようになります。fatal: Not a git repository: '.'
なぜこれが起こっているのでしょうか?
git - git hook post-merge - エラー: 実行できません
プル後に git フックをトリガーするために、マージ後のフックを作成しました。スクリプトは次のようになります。
このファイルは「post-merge」と呼ばれ、pull コマンドを実行するファイルと同じ所有者を持ちます。また、適切な権限があります: 755.
git pull [remote] master を実行すると、次のエラーが発生します。
マージ後のファイルは .git/hooks フォルダーにあります。
git - GIT 事前受信フック
サーバー側の事前受信フックを使用して、サーバーにプッシュされているファイルを変更する方法はありますか?
ファイルの最後に次のようなものを追加したいとします。
誰かが私のレポにプッシュするたびに。
を使用して入ってくるファイルを変更する方法はありますgit hooks
か?
git - git post-commit hook - コミットされたファイルのスクリプト
コミットされた各ファイルでスクリプトを実行するコミット後のフックの例をどこかで見ることができますか?
例えば。
そしてフックが実行されます:
最善の方法は、このフックを実行するかどうかをコミットするコマンドにパラメーターを設定することです。git commit -X
… このコミット後のフックを実行します。最終的には のようなエイリアスになりgit-commitx
ます。
インデックス内のファイルの pre-commit フックと同じバージョンはどうですか? ファイルの 1 つでスクリプトの実行が失敗した場合、コミットを中止できますか?
編集:
これが私が今持っているものです:
git - リモート/共有の事前コミットフックをGit
1つの公式リポジトリをリモートとして使用し、そこから複数のローカルリポジトリを複製した場合、そのメインリポジトリでpre-commitフックをスクリプト化して、そのすべてのクローンに適用できますか?
git - gitosis を使用して git リポジトリへの http アクセスを管理する
[2010/9/16 更新]
昨夜これを調べた後、最初の質問が実際には2つの別々のことを求めていることに気付きました。
1) gitosis によって作成されたすべてのリモート リポジトリに更新後のフックを設定することは可能ですか (つまり、gitosismv hooks/post-update.sample hooks/post-update
でリポジトリを作成した後に手動で実行する必要はありません)。git update-server-info
post update フック内から呼び出されるという事実)。
2) HTTP 経由でリポジトリにアクセスできるようになったら、gitosis.conf のオプションを使用してアクセスのオンとオフを切り替えることができますか (daemon = no
またはに似たものgitweb = yes
)
--- 質問 1 の解答 ---
git init
Git はテンプレートを使用して、コマンドで新しいリポジトリを作成することが判明しました。mv hooks/post-update.sample hooks/post-update
テンプレートディレクトリ内で実行することによりgit init
、私のサーバーでの今後のすべての呼び出しで、更新後のフックが正しく構成されます。(OSXでは、テンプレートディレクトリは/opt/local/share/git-core/templates/
気にする人のためのものです)
これが機能するためのもう 1 つの要件は、リポジトリの HTTP クローン URL が次のようになるように、Apache 書き換えルールを有効にすることです。http//git.example.com/repo.git
私の書き換えルールは次の/etc/apache2/extra/httpd-vhosts.conf
ようになります。
--- 質問 2 の解決策をまだ探しています...ヘルプ! :) ---
HTTP クローンがすべてのリポジトリで機能するようになったので、gitosis を使用して HTTP アクセス制御を管理する方法があるかどうか疑問に思っています。リポジトリへの git-daemon およびgitwebアクセスを設定daemon = no
しgitweb = no
てオフにしますが、Apache 書き換えルールがまだ有効であるため、リポジトリは. これを管理するために gitosis を使用する方法についてのアイデアはありますか?http://git.example.com/repo.git
【最初に投稿した質問】
gitosis を使用して git リポジトリへの http アクセスを管理することは可能ですか? たとえば、gitosis.conf では、次を使用して gitweb と git-demon のアクセスを管理できます。
現在、次のコマンドを発行してリポジトリのクローンを作成できます。
ただし、次のコマンドを発行すると:
次のエラー メッセージが表示されます。
ただし、サーバーにログインして repo.git 内から次を実行すると:
その後、http によるクローン作成は正常に機能します。
gitosis 内からリポジトリへの http アクセスを管理する方法はありますか?
git - git commit not push 後にメールを送信する
リポジトリにコミットした後、差分付きのメールを送信する必要があります。プッシュ後にメールを送信する方法は知っていますが、コミットでは機能しません。
プッシュ用に、 parameters を取得するフック post-receive を作成しました。しかし、フック post-commit はパラメーターを受信しないため、メールを送信するスクリプトを使用できません。
コミット後のフックで newrev と refname に関する情報を取得する方法や、コミット後にメールを送信する別の方法があるのではないでしょうか?
git - git: post-receive フックをプッシュした人
誰がリポジトリにプッシュしたかを特定するにはどうすればよいですか?
つまり、誰かがそうgit push origin master
し、レポのポスト受信フックで、origin
誰かの名前または電子メールを使用する必要があります。
git - git:受信後フックの空の引数
dirpost-receive-email
からのスクリプトに基づいて受信後のフックを書いていますが、引数と引数が空のようです。contrib
oldrev
newrev
スクリプトは次のようになります。
スクリプトはプッシュで実行されますが$1
、、、および$2
はすべて空です。それを実行するために何かを構成する必要がありますか?$oldrev
$newrev
(リポジトリは、gitolite
重要な場合によって作成されました)
git - Git:改行\rをgitフックで改行\nに変換しますか?
仲間のコーダーが Windows コンピューターを使用しており、ソースのいたるところにキャリッジ リターンが挿入されています。
\r\n
すべてを に変換する git フックを作成する方法はあり\n
ますか?
私は以前に git フックを使用したことがないことに注意してください。