27

プロジェクトでは、カスタム作成のGitフックを使用します。

フックはプロジェクトのリポジトリに保存され、変更された場合、新しいバージョンを取得するには、各ユーザーが自分の.git/hooksディレクトリにフックを手動でコピーする必要があります。これはかなり不便です。

これを改善する1つの方法は、.git/hooksをワークツリーへのシンボリックリンクにすることです。ただし、これは、各ブランチ(開発中のユーザーのローカル機能ブランチでさえ)に最新バージョンのフックが必要であることを意味します。これも便利ではありません。

どのように問題を解決しますか?

4

7 に答える 7

14

フックの別のリポジトリを維持し、それにシンボリックリンクします。

私は同意します。Gitにフックスクリプトを伝播するための組み込みのメカニズムがあればいいのですが、そうではありません。

于 2010-01-12T16:35:02.987 に答える
9

http://benjamin-meyer.blogspot.com/2010/06/managing-project-user-and-global-git.htmlは、フックシンボリックリンクを自動化し、グローバル、ユーザーごと、およびプロジェクトごとに促進する便利な方法のようです。フック。

于 2010-09-02T18:54:34.107 に答える
3

Git 2.9では、構成を使用してカスタムフックディレクトリを指すことができcore.hooksPathます。

Git2.9リリースノート-https ://github.com/blog/2188-git-2-9-has-been-released

言及しているドキュメント-https core.hooksPath: //git-scm.com/docs/githooks

注-この質問は、Gitフックスクリプトをリポジトリと一緒に管理できるかどうかの重複の可能性がありますか?

于 2016-06-16T14:26:15.573 に答える
3

pre-commitには、有望に見える機能がたくさんあります

  • 多くの言語で動作し、他の言語のサポートを追加するためのプラグインアーキテクチャを備えています
  • フックの依存関係をブートストラップできる(言語に依存)
  • フックを段階的に適用します(コミットの一部である変更に対してのみフックを実行します)
  • init.templateDirを活用して、新しくチェックアウトされたリポジトリが自動的に正しいフックをインストールするようにします
  • 環境変数を使用して特定のフックを一時的に無効にします-チェックの1つを実行できないという理由だけで、すべてのチェックをスキップしないでください

ソースコードはこちら

于 2021-03-24T02:18:08.647 に答える
2

リポジトリの.gitディレクトリをgitリポジトリにし、フックやその他の設定を追加して、、objectsなどrefsのディレクトリやファイルをindexに追加することができます.gitignore。それだけでなく、受信後フックを設定して、メタリポジトリを元の場所から更新することもできます。初期構成をセットアップしたら、追加の作業なしで更新をプルすることができます。

無視リストに何を入れるべきかなど、この詳細を検討しています。このリポジトリのブランチに結果を保存しています。

于 2010-10-10T01:36:20.467 に答える
2

NodeJSベースのプロジェクトの場合は、ghooksを確認することをお勧めします。

于 2016-07-13T00:57:57.670 に答える
0

.git/hooksを作業ツリーへのシンボリックリンクにしました。

フックが拒否するファイルを誰かがコミットする必要があるまれな場合には、git commit --no-verify

于 2010-01-12T17:41:12.340 に答える