問題タブ [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.
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フックはどのようになりますか?
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.
git - PowerShell スクリプトを git フックとして実行する
PowerShell スクリプトを git フックとして実行することはできますか?
PowerShellプロンプトでgitを実行していますが、違いはありませんが、フックは拡張子なしで名前が付けられており、PowerShellには.ps1拡張子が必要(AFAIK)であるため、それらを機能させることができないようです。それが問題なのか、それとも別の問題なのかはわかりません。
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 は独自のフックをコピーしますが、私のフックは無視します。
理由はありますか?
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.com
しcd ~/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
git - gitフックの新しいタグにどのように反応しますか?
着信タグに基づいてCDNスタイルのディレクトリ構造を作成するgitフックを設定したいと思います。したがって、たとえば、ローカルリポジトリの最後のタグが「v1.2.1」で、「v1.2.2」でコミットをプルすると、新しいタグが表示され、リポジトリが新しいものに直接複製されます(../1.2 .2)それに応じて。
これをpost-receiveに添付したいと思いますが、着信タグの読み取り方法に関するgitフックに関するドキュメントには何も見つかりません。それらは別のフックで配信されますか?新しいコミットのいずれかに新しいタグがあるかどうかを確認するために、実際にシェルスクリプトでgitコマンドを実行する必要がありますか?
ありがとう!
git - git commitフックを使用してチケット番号を追加しますか?
したがって、私のブランチは「issue-1234」のようなバグトラッカーのチケット番号にちなんで名付けられており、コミットメッセージには常にチケット番号を書き留めるという慣習があります。明示的に入力しなくても、issue- *ブランチに取り組んでいるときに、コミットメッセージにチケット番号を自動的に追加できるかどうか疑問に思っています。
git commitフック、つまりpre-commit、prepare-message、post-commitを調べましたが、どれも私が望んでいたことを実行できないようです。コミット後のフックは近くなりますが、-mでコミットされたメッセージを変更することはできません。
繰り返しになりますが、これが可能かどうか疑問に思っています。
ブランチ:issue-1234
コミット後、gitログに次のようなメッセージが表示されます。
git - ステージング、追加、またはプッシュする前に、gitフックを使用してパスワードを置き換えることはできますか?
ステージング、追加、またはプッシュする前に、gitフックを使用してパスワードを置き換えることはできますか?
コミットまたはプッシュする前に、パスワードをテンプレートに置き換えたい。
たとえば、プレーンテキストのパスワードの前に「PWDEXLUDE_password」を付け、フックで<>に置き換えると、展開フェーズでスクリプトがテンプレートを検索し、データベースでパスワードを検索して、そのテンプレートを本番パスワードに置き換えることができます。 。
そのようなものはgitで利用可能または可能ですか?
visual-studio-2010 - サブモジュールの更新時にどの githook が呼び出されますか?
これが状況です。複数のサブモジュールを含む git リポジトリがあります。最上位ディレクトリとすべてのサブモジュールの両方に、Visual Studio 2010 ソリューションが含まれています。
最上位のリポジトリは、最新のサブモジュールに依存しており、サブモジュールは更新されるたびに再構築する必要があります。任意の数のサブモジュールがあるため、私がやりたいことは、更新されたばかりのサブモジュールをコンパイルするために、git である種の更新後のフックを作成することです。
だから私の質問はこれです:サブモジュールが更新されたときにどのフックが呼び出されますか? ポストチェックアウトが私が望むものかもしれないようですが、よくわかりません。
それが違いを生む場合、バックエンドとしてGit for Windows(msysgit)でTortoiseGitを使用しています。
git - クローン/プル時にファイルの $Id$ を更新するフックはありますか?
私は裸の(リモート)GITリポジトリを持っており、そこにコミットすることを祝福された数人のユーザーがいます。リポジトリのクローン/プルでは、魔法を含む各ソースファイル$Id:$
をスムーズに展開したいと考えています。のように: $Id: <name-of-last-committer> <data>
.
この拡大/縮小された魔法の文字列がファイルの変更状態に影響しないとしたら、それは素晴らしいことです。
フックを介して行われると思います。すぐに使えるそのようなフックがあるのだろうか?または、私のタスクをどのよう$Id
に解決できますか? ありがとう。