2017-02-27 3 views
0

をコミット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 

をコミットすることが働いているように見えるとき:使用

+0

最後の行に "exit 0"を追加しようとしました(いくつかの "internets"の例で見ました) – barat

+0

スクリプトには "cd"という文字列があり、カレントディレクトリから移動します。これはGitフック - いくつかの*他の*ディレクトリ。しかし同時に、あなたは* * Gitリポジトリで設定されたものは、特定のリポジトリ、インデックスファイルにGitリポジトリを指示するために、および/または作業ツリーのパスがまだ特定にGitリポジトリを直接(そして今もあることを意味し、様々なGitの環境変数をオーバーライドしません潜在的に間違っている)。私はGitの-ため、Windowsが「通常」のGit対、奇妙な、何か特別なことをしますが、通常のGitは* 'git'とサブコマンドの間に*引数に基づいて変数を設定巻き取る、プラスかどうかわからないんだけど... [続き] – torek

+0

* *フック(事前にコミット、編集コミット-MSG)をコミット 'GIT_INDEX_FILE'セットで実行されます。幸運なことに、インデックスファイル(ステージング領域)の変更は、Gitバージョン1.5.4以降のコミット前のフックで明示的に許可されています。ただし、パスは相対パスでもかまいません。そうであれば、別の場所に移動しているので、パスを調整する必要があります。 – torek

答えて

0

。フックが機能するためには、gitが他の段階的な変更を必要としているかのようです。だから基本的にコミットしていないが、まだbe.sqlファイルをダンプしていた。それは、日付が変わったために次回に変更されたステージングインデックスに現れる。完全に通過することにコミットできるようにするためにかかわらず、他のがあったかどうかの私は段階的な指標では何もコミットできます--allow-空のオプションを使用して変更を上演しました。

関連する問題

 関連する問題