問題タブ [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 に答える
8402 参照

svn - SubversionリポジトリとGitリポジトリを自動的に同期する

私のプロジェクトにはネットワークファイルシステム上にSubversionリポジトリがあり、新しいチームがGitを使用してそれにアクセスし、それにコミットして更新を取得できるようにしたいと考えています。

私が念頭に置いているのはgit-svn、同じネットワークファイルシステム上にSubversionリポジトリの新しいベアクローンを作成し、2つのリポジトリが常に最新であることを確認することです。

これを行う方法は、おそらくSubversionと新しいGitリポジトリの両方にコミット後のフックを追加することです。これにより、それぞれが他方のリポジトリを更新します。

Subversionのコミット後フックにはgit svn rebase、とGitが含まれますgit svn dcommit

問題は、コミットする前に常に同期している必要があるため、他のリポジトリもコミットしている間、どちらのリポジトリにもコミットしないようにするために、ある種のロックを使用する必要があることです。これにはいくつかの欠点があります。その中には、Subversionにコミットしたり、Gitリポジトリにプッシュしたりするのにかかる時間(フックが終了するのを待つ必要があります)や、一部のユーザーが実行できない可能性があるという事実がありますgit svn(自分のマシンにインストールされていない)、つまり、コミット/プッシュ時に他のリポジトリを更新できないことを意味します。

どうすればこれらの問題を解決できますか?SubversionフックとGitフックはどのようになりますか?

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

git - How to execute a command right after a fetch or pull command in git?

I cloned the GHC (Glasgow Haskell Compiler) repository. In order to build the compiler, you need several libraries, all of them are available as git repositories too. In order to ease ones live, the GHC hackers included a script sync-all that, when executed, updates all the dependent repositories.

Now to my question: How can I make git execute ./sync-all pull after I did a git pull automatically? I heard something about using hooks, but I don't really know, what I have to do.

0 投票する
10 に答える
17250 参照

git - PowerShell スクリプトを git フックとして実行する

PowerShell スクリプトを git フックとして実行することはできますか?

PowerShellプロンプトでgitを実行していますが、違いはありませんが、フックは拡張子なしで名前が付けられており、PowerShellには.ps1拡張子が必要(AFAIK)であるため、それらを機能させることができないようです。それが問題なのか、それとも別の問題なのかはわかりません。

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

hook - Gitolite フックが伝播しない

私は、膨大な gitolite のドキュメントを何度も何度も読んできました。これは私の構成です:

root 権限を持つ別のユーザーとして Gitolite をインストールしている間に、gitolite を実行している Git ユーザー。gl-system-install メソッドを使用してインストールしました。

今、hooks/common ディレクトリの 2 つのコピーが表示されます (/usr/local/share/gitolite/hooks/commonそして/home/git/.gitolite/、システム全体の実装のために最初の 1 つを使用するつもりです)。

gitolite-source は次の場所にあります。/home/user/gitolite-source

ディレクトリにいくつかのダミー フックを配置しました/home/user/gitolite-source/hooks/common/(post-udpate、post-update.secondary、post-receive、および post-commit)。これらすべてに exec ビットが設定されています。

このディレクトリの更新フックを編集してセットアップを再実行すると、(既存のリポジトリにある) 新しい更新フックが の更新フックにシンボリック リンクされ/usr/local/share/gitolite/hooks/commonます。

しかし、source/hooks/common ディレクトリ内の新しいフックは両方のフックの場所にコピーされますが、新しいシンボリック リンクは既存のリポジトリには表示されません。

つまり、gitolite は独自のフックをコピーしますが、私のフックは無視します。

理由はありますか?

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

git - ssh://peter@foo.com/~/bar.com.gitにプッシュした後、〜/ bar.comに移動してgitプルを実行するようにGitフックを設定するにはどうすればよいですか?

リモートサーバーにセットアップするようにアドバイスされました

だから、私のローカルマシンから、私はすることができます

そしてそれはリモートマシンにプッシュしfoo.com/~/bar.com.gitます(フルパスはssh://peter@www.foo.com/~/bar.com.git

フックを追加して、プッシュ後にリモートサーバーがすべてのコンテンツを更新cd ~/bar.comするようにするにはどうすればよいgit pullですか(ローカルマシンと同じ)?git update( Mercurialのように実行する必要はありませんか?)

(これは、サーバー上のフォルダーをgitクローンしてから編集してgit pushすることはできませんか? 今はsshを実行foo.comcd ~/bar.comてそこで待機し、ローカルマシンからgit pullいつでも実行できますが、それがあると便利ですgit push自動的に行われます)

更新:具体的な詳細とその方法を知っている場合にのみ、回答を投稿してください。あなたがグーグルして、ここに最初または2番目のグーグル結果を投稿するならば、それは役に立たないでしょう。

更新2:次の内容~/bar.com.git/hooksの新しいファイルに移動して追加しました。post-receive

またchmod 755 post-receive、ローカルマシンでファイルを編集した場合git com -m "ok"git pushリモートマシンのフォルダに変更が反映されません。~/bar.com

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

git - gitフックの新しいタグにどのように反応しますか?

着信タグに基づいてCDNスタイルのディレクトリ構造を作成するgitフックを設定したいと思います。したがって、たとえば、ローカルリポジトリの最後のタグが「v1.2.1」で、「v1.2.2」でコミットをプルすると、新しいタグが表示され、リポジトリが新しいものに直接複製されます(../1.2 .2)それに応じて。

これをpost-receiveに添付したいと思いますが、着信タグの読み取り方法に関するgitフックに関するドキュメントには何も見つかりません。それらは別のフックで配信されますか?新しいコミットのいずれかに新しいタグがあるかどうかを確認するために、実際にシェルスクリプトでgitコマンドを実行する必要がありますか?

ありがとう!

0 投票する
7 に答える
18424 参照

git - git commitフックを使用してチケット番号を追加しますか?

したがって、私のブランチは「issue-1234」のようなバグトラッカーのチケット番号にちなんで名付けられており、コミットメッセージには常にチケット番号を書き留めるという慣習があります。明示的に入力しなくても、issue- *ブランチに取り組んでいるときに、コミットメッセージにチケット番号を自動的に追加できるかどうか疑問に思っています。

git commitフック、つまりpre-commit、prepare-message、post-commitを調べましたが、どれも私が望んでいたことを実行できないようです。コミット後のフックは近くなりますが、-mでコミットされたメッセージを変更することはできません。

繰り返しになりますが、これが可能かどうか疑問に思っています。

ブランチ:issue-1234

コミット後、gitログに次のようなメッセージが表示されます。

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

git - ステージング、追加、またはプッシュする前に、gitフックを使用してパスワードを置き換えることはできますか?

ステージング、追加、またはプッシュする前に、gitフックを使用してパスワードを置き換えることはできますか?

コミットまたはプッシュする前に、パスワードをテンプレートに置き換えたい。

たとえば、プレーンテキストのパスワードの前に「PWDEXLUDE_password」を付け、フックで<>に置き換えると、展開フェーズでスクリプトがテンプレートを検索し、データベースでパスワードを検索して、そのテンプレートを本番パスワードに置き換えることができます。 。

そのようなものはgitで利用可能または可能ですか?

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

visual-studio-2010 - サブモジュールの更新時にどの githook が呼び出されますか?

これが状況です。複数のサブモジュールを含む git リポジトリがあります。最上位ディレクトリとすべてのサブモジュールの両方に、Visual Studio 2010 ソリューションが含まれています。

最上位のリポジトリは、最新のサブモジュールに依存しており、サブモジュールは更新されるたびに再構築する必要があります。任意の数のサブモジュールがあるため、私がやりたいことは、更新されたばかりのサブモジュールをコンパイルするために、git である種の更新後のフックを作成することです。

だから私の質問はこれです:サブモジュールが更新されたときにどのフックが呼び出されますか? ポストチェックアウトが私が望むものかもしれないようですが、よくわかりません。

それが違いを生む場合、バックエンドとしてGit for Windows(msysgit)でTortoiseGitを使用しています。

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

git - クローン/プル時にファイルの $Id$ を更新するフックはありますか?

私は裸の(リモート)GITリポジトリを持っており、そこにコミットすることを祝福された数人のユーザーがいます。リポジトリのクローン/プルでは、​​魔法を含む各ソースファイル$Id:$をスムーズに展開したいと考えています。のように: $Id: <name-of-last-committer> <data>.

この拡大/縮小された魔法の文字列がファイルの変更状態に影響しないとしたら、それは素晴らしいことです。

フックを介して行われると思います。すぐに使えるそのようなフックがあるのだろうか?または、私のタスクをどのよう$Idに解決できますか? ありがとう。