をコミット2012 R2/IIS)。次のコードはきれいにデータベースをダンプしますが、私はコミット後、それはまだ時々...ステージング領域でbe.sqlファイルを示します(?) - (?)それがコミットした後ステージングにファイルを追加しているようです。私は、コミット実行後、ファイルを追加することができる理由はわかりませんので、これが行われ、プリコミットフックです:Gitのプリコミットフックは、私は、Windows Server上で(MySQLデータベースをダンプし、それがその後、コミットに含めることができますので、事前にコミットフックを使用してステージングエリアに.SQLダンプ・ファイルを追加しようとしています
#!/bin/bash
# Dump Database
/c/Program\ Files\ \(x86\)/MySQL/MySQL\ Server\ 5\.7/bin/mysqldump.exe -u root --skip-extended-insert be > /c/inetpub/wwwroot/directory/be/be.sql
# Add Database
cd /c/inetpub/wwwroot/directory/be
git add be.sql
行動は少し奇妙である - 私はbe.sqlがステージングにまだあるでしょう私はコミットをするつもりです。後で私がgit状態になったら、木はきれいです。再度コミットしてgit statusを実行すると、ステージングインデックスにbe.sqlファイルが表示されます(変更しませんでした)。そして、それは行きます。私は、.sqlファイルをダンプし、ステージングインデックスに.sqlファイルを追加し、ステージングインデックスがきれいになるたびにコミットします。なぜこれが起こっているかについてのアイデアは非常に高く評価されます。
git commit -m "Message" --allow-empty
をコミットすることが働いているように見えるとき:使用
最後の行に "exit 0"を追加しようとしました(いくつかの "internets"の例で見ました) – barat
スクリプトには "cd"という文字列があり、カレントディレクトリから移動します。これはGitフック - いくつかの*他の*ディレクトリ。しかし同時に、あなたは* * Gitリポジトリで設定されたものは、特定のリポジトリ、インデックスファイルにGitリポジトリを指示するために、および/または作業ツリーのパスがまだ特定にGitリポジトリを直接(そして今もあることを意味し、様々なGitの環境変数をオーバーライドしません潜在的に間違っている)。私はGitの-ため、Windowsが「通常」のGit対、奇妙な、何か特別なことをしますが、通常のGitは* 'git'とサブコマンドの間に*引数に基づいて変数を設定巻き取る、プラスかどうかわからないんだけど... [続き] – torek
* *フック(事前にコミット、編集コミット-MSG)をコミット 'GIT_INDEX_FILE'セットで実行されます。幸運なことに、インデックスファイル(ステージング領域)の変更は、Gitバージョン1.5.4以降のコミット前のフックで明示的に許可されています。ただし、パスは相対パスでもかまいません。そうであれば、別の場所に移動しているので、パスを調整する必要があります。 – torek