問題タブ [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.

0 投票する
2 に答える
717 参照

git - ポスト/プレコミットフックのステージングされていない変更をgitに無視させる方法

Railsプロジェクトで自動化を成功させるには、すべてのテストに合格する必要があります。問題は、git add --patchコミットする前にかなり多く使用し、段階的な変更でのみテストを実行したいということです。

解決策1:コミット前に agit stash --keep-indexを実行するか、コミット後に単純git stashに実行し、その後にフック(rake tests)とを実行しgit stash popます。これは、それが終了するのを待つ必要があり、実行中はステージングされていない変更にアクセスできないことを意味します。

解決策2:新しいローカルリポジトリ(テスター)をセットアップし、最初のリポジトリ(開発)からコミット後のフックをセットアップして、テスターリポジトリにプッシュします。テスターリポジトリには、テストを実行し、プッシュする前にコミットの修正に合格したか失敗したかを(電子メールまたはwhateva経由で)通知するための受信後フックが必要です。

無視されたファイルのためにリポジトリに違いがあるとしても、2番目の解決策ははるかに良く聞こえます(私は推測します)。

提案する別の解決策はありますか?

0 投票する
6 に答える
13296 参照

git - GIT プッシュでメールを受信する

私は、誰かがコミットするたびにコラボレーショングループが電子メールを受信するという転覆に慣れています。GitHub に同様の機能があり、ユーザーが変更をプッシュするたびに、リポジトリで作業している人々が電子メールを受信しますか?

0 投票する
1 に答える
406 参照

githooks - perl で書かれた post-receive フックはどのようにブランチ名を取得できますか?

perl で書かれた post-receive フックがあります。どのブランチにプッシュされているかを把握できる必要があります。これどうやってするの?@ARGV と $ARGV[2] を調べてみましたが、成功しませんでした。

0 投票する
6 に答える
374206 参照

git - Git コミット フックをスキップする

Pythonコードでprintステートメントを探すgitフックを見ています。print ステートメントが見つかった場合は、git commit が妨げられます。

このフックをオーバーライドしたいのですが、そうするコマンドがあると言われました。私はそれを見つけることができませんでした。何かご意見は?

0 投票する
3 に答える
8963 参照

git - ギトライトにフックを取り付ける方法

フック同様の 質問、および多くのコードに関するすべてのドキュメントを読みましたが、手順のエラーがどこにあるかを追跡できません。私のgitoliteインストール(CentOSのrpmパッケージで作成)に単純なフックをインストールする必要があるので、これが私がしたことです:

gitoliteをインストールするには(少し前):

  1. rpmパッケージをインストールしました
  2. # su - gitolite
  3. $ gl-setup /tmp/fabio.pub(gitoliteユーザーとして)

次にフックを取り付けます。

  1. post-updateフックコードを含むサンプルファイルを作成し~gitolite/.gitolite/hooks/commonましchmod +x
  2. ここに記載gl-setup /tmp/fabio.pubされているように再度実行します

しかし、何も起こりませんでした。最新のコマンドの終了ステータスは0ですが、フックファイルはどのリポジトリでもシンボリックリンクされていません。それで、私の手順の何が問題になっていますか?私は何かを逃したことがありますか?

ボーナスの質問:

  1. ドキュメントを理解していた場合、私の手順は正しいですか?つまり、フックを更新するたびにgl-setupを実行する必要がありますか?
  2. このようにして、このgitoliteインストールの下のすべてのリポジトリに共有フックをインストールします。フックをどこかにシンボリックリンクとして手動でインストールすることはできますか、それとも特定のリポジトリに対してのみ実行可能なスクリプトとしてインストールすることはできますか?指定されたリポジトリのフックフォルダで手動で行う必要がありますか?フックの競合に注意する必要がありますか(つまり、単一のリポジトリのカスタムフックは、同じ名前の他の共有フックをブロックしますか?)

これが重要かどうかわからない、私のギトライトバージョンは1.5.9.1です。

0 投票する
3 に答える
228 参照

git - メンテナーがカスタムバージョンを使用できるようにしながら、デフォルトの構成ファイルを Git リポジトリに保持する方法は?

パブリック Github リポジトリに .xml 構成ファイルがあり、新しいユーザーが使用できるように、その .xml ファイルの基本的な既定のバージョンを含めたいと考えています。

ただし、パッケージのメンテナーは、個人用の .xml ファイルをコミットせずに編集できるようにしたいと考えています。

メンテナーがカスタム バージョンを使用できるようにしながら、既定の構成ファイルをパブリック Git リポジトリに保持する最もクリーンな方法は何ですか?

0 投票する
3 に答える
2677 参照

git - Git マージ後のフック、マージされたブランチの名前を取得する方法

特定のブランチからマージする場合にのみ実行されるマージ後のフック スクリプトを作成しようとしています。特定のコミットのブランチ変更の名前を特定するにはどうすればよいですか?

例えば

0 投票する
2 に答える
5412 参照

git - Gitフック:エコーコマンドを有効にする

gitフックでエコーを有効にする方法はありますか

別のマシンで必要なgitプッシュ出力:

これは単なる例であり、実際のコマンドチェーンはより複雑になる可能性があります

どこかで失敗します

どういうわけかstdoutをstderrにリダイレクトする必要がありますか?

アップデート

現在、私は通常のgit push出力を持っていますが、その後========post-update hook========= ...そして何もありません

おー!gitバージョンは1.5.6.5です

0 投票する
2 に答える
5565 参照

mysql - Gitプッシュアンドプルでデータベースをエクスポートおよびインポートする

サーバーを使用せずに、2台のローカルコンピューター間でデータベースを同期させる必要があります。いくつかの調査の後、Gitフックを使用してタスクを実行できると思いました。

私が基本的に望んでいるのは、リモートリポジトリとの間mysqldumpで実行git push(およびSQLファイルをコミットに追加)することmysqlimportです。git pull

このための特定のフックは見つかりませんでした。フックを試しましたpre-commitが、現在のコミットにSQLファイルが追加されませんでした。それから私は試しprepare-commitましたが、運がありませんでした。

誰かがこれに対する答えを持っていますか?