問題タブ [pre-commit]

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 投票する
1 に答える
1104 参照

git - git で重複する変更を処理するための推奨事項は?

私は git リポジトリの一部のコードに 2 つの多くの変更を加えましたが、変更ごとに別々のコミットを行いたいと考えています。変更は衝突していませが、重複しています。つまり、独立した変更を行っており、たまたま同じ行にある場合があります。これは、git add --patchうまくいかないことを意味します。

このタイプの変更の例としては、コーディング標準に準拠するためにすべてのコンマの後にスペースを追加したり、名前空間関数にプレフィックスとして文字列を付けたりすることがあります。

この種の衝突に対処するスマートな git 関連の方法はありますか、それともゼロから始めて変更の 1 つを元に戻す唯一のオプションですか?

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

git - 以前にステージングされたバージョンを維持したまま「gitadd」を元に戻すにはどうすればよいですか?(インデックスには履歴がありますか?)

コミットする前に「gitadd」を元に戻す方法に似た質問がありますか?、ただし重要な違いがあります。

バックグラウンド:

完了時にリポジトリに追加するファイルを生成するコードを実行しています。ファイルを生成しているコードは新しいコードであり、流動的であるため、変更を加えて複数回実行することがあります。

途中で、生成されたファイルをインデックスに追加しているので、最後に1つの大きなコミットの準備ができています。これにより、コードへの変更によって出力に変更が加えられるかどうか、また作成される場合はそれらの変更が何であるかを確認することもできます。Changes to be committedしかし...セクション(としてnew fileChanges not staged for commitセクション(として)の両方に表示されたファイルに対して、誤って別のgitaddを実行しましたmodified。git diffを実行するつもりでしたが、スリップして再度追加したので、(私が知っている)diffを実行する方法がありません。

質問:

最後のステージング操作だけを元に戻す方法はありますか?以前に追加されたバージョンが引き続き/再びインデックスに含まれ、変更されたファイルが再び作業ツリーに含まれるため、差分をとることができますか?

私がこの小さな開発ラウンドを終えたときにすべてを一緒にコミットすることが目標であるため、これはコミットされていません。私は、gitが通常、コミットされる前に新しいファイルへの変更を表示できるのが本当に好きです...しかし...私はそのチャンスを逃しました、そして今それを取り戻す方法があるかどうか疑問に思っています。?

私がこれまで調べてきたことは、最後のコミット(ファイルなし)またはファイルの現在の状態(とにかく私が持っている)に戻ることができるようですが、前のコミットに行く間の中間ではありませんインデックスからのバージョン、それはコミットの一部ではありませんでした。これが可能かどうかについてのヒント(不可能であるという確かな答えでさえ、できればこれが当てはまる理由の説明とともに)をいただければ幸いです。

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

svn - pre-commit フック SVN によってブロックされたコミット

サーバーにサブバージョンがあります。コミットしようとすると、次のようなエラーが発生します。

次に、/var/log/httpd/error_log 内のエラー ログを確認しようとします。

次のようなエラーが発生しました:

そのエラーは何ですか?

これを解決するには?

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

msbuild - Perforce 用のプレコミット ビルド ツール

Perforce のプレコミット ビルドを実行し、正常に実行されたときに変更を自動送信するためのツールはありますか?

複数のチェックインをキューに入れることもできるサーバー側のソリューションを探しています(クライアントから実行するJetBrains teamcity VSアドインとは異なり、ジョブIDを追加できないなどの他の制限があります)

0 投票する
5 に答える
5049 参照

git - precommit フックでコミットしようとしているものをテストする

pre-commitフックが実行されると、リポジトリがクリーンでない可能性があります。したがって、単純にテストを実行すると、コミットしているものに反するのではなく、作業ツリーにあるものに反することになります。

やるべきことは明らかgit stash --keep-index --include-untrackedで、 の最初とpre-commit最後git popにあります。そうすれば、(純粋な) インデックスに対してテストを行うことができます。これが私たちが望んでいることです。

git add --patch残念ながら、これを使用すると(特にハンクを編集する場合)マージ コンフリクト マーカーが生成されます。これstash@{0}は、コミット後に の内容が作業ツリーと一致しない可能性があるためです。

もう 1 つの一般的な解決策は、リポジトリを複製し、新しい一時リポジトリでテストを実行することです。それには2つの問題があります:

  1. まだコミットしていないため、コミットしようとしている状態のリポジトリのコピーを簡単に取得することはできません。と
  2. たとえば、ローカル環境の構成が原因で、テストが現在の作業ディレクトリの場所に敏感になる場合があります。

git stash --keep-index --include-untrackedマージ競合マーカーを導入せず、 post-commit を変更せずに、作業ツリーを の前の状態に復元するにはどうすればよいHEADですか?

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

svn - subversion 1 つのファイルの成長するバージョンへのアクセスを制限する

Subversion でファイルに書き込み制限を実装する最良の方法を見つけようとしています。

時間の経過とともに、このファイルには多くのタグとブランチが存在します。特定の 1 人のユーザー、ユーザー ビルドは、このファイル (考えられるすべてのブランチまたはタグ) にアクセスできる必要があり、それ以外には何もアクセスできません。

ご覧のとおり、これはファイルの有限セットではなく、時間の経過とともにさまざまなブランチやタグにコピーされる 1 つのファイルです。ただし、ファイル ツリー内でファイル名が一意であることは保証できます。

この制限をユーザー 'build' で 'changelog.txt' という名前のすべてのファイルに実装するには、事前コミット スクリプトを実装することを考えました。

これが最善の方法ですか?

ありがとう!

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

git - pre-commitファイルをgitリポジトリにチェックインする方法

myrepo / .git / hooks/pre-commitに新しいpre-commitを追加しようとしています。実行したときに、このpre-commitの新しいファイルが表示されないのはなぜですか

gitステータス

いくつかのgit構成または設定をオンにする必要がありますか?

ありがとう

0 投票する
0 に答える
538 参照

svn - SVN リポジトリでファイルの削除をコミットできません。内部エラー: 非修正ファイル変更

リポジトリでファイルの削除をコミットできなくなったようです。

これがネット上のどこにも見つからないのは奇妙に思えます。

何か案が?

私は亀1.7.7とSVN 1.7.6を使用しています

私のpre-commit.bat

そして私のプリコミットフック

前もって感謝します

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

git - git pre-commitコードの変更は、コミット前ではなくコミット後に適用されます

ソースのバージョン番号をインクリメントするpre-commitフックを作成しました。コミットに変更が適用されるのはなぜですか?コミットする前にそれを行うにはどうすればよいですか?

このような自動変更はお勧めしません。しかし、技術的にはこれはとにかく可能であるはずです。Ubuntu9.10でgit1.6.3.3を使用しています。

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

git - ステージングされたコンテンツに対してのみgitpre-commitチェックを実行するにはどうすればよいですか?

git statusこれを与えると仮定します:

この場合、file1.ccに加えられた変更の一部のみが、次のコミットのためにステージング/インデックス付けされています。

事前コミットスクリプトを実行して、スタイルチェッカーを実行します。

ここで提案されているように、スタイルチェックを実行する前にステージングされていないファイルを隠し、後でポップします。ただし、ファイル内の変更の一部のみがステージングされた場合、pre-commitフックの最後にスタッシュをポップすると、マージの競合が発生します。

これを行うためのより良い方法は何ですか?コミットしようとしているファイルのステージングされたバージョンに対してスタイルチェックを実行したいと思います。