(クリーンなプロダクション タイプのリポジトリに) プルすると、すべての変更セットが表示され、ファイルが変更されたように見え、コミットが必要になります。git ログには、これらの変更を引き起こしたはずのコミットが表示されません...変更はログのメモなしでプルされるだけなので、同期していないと考えられます。
プルの結果には、各ファイルの「更新が必要」というメッセージが表示されます。
このGit プロジェクトに示されているように、これは、Git が Unix で開発され、Windows で複製されたプロジェクトの eol スタイルを調整しようとしたときに発生する可能性があります。
msysgit 経由 トラブルシューティング
git bash でコマンドを実行します。
git config --global core.autocrlf false
これが行われていない場合、git svn rebase は、ソースに変更が加えられたと考えて「更新が必要」と報告します。コミットで問題が発生する可能性があります。
詳細については、このSO の回答を参照してください。
私が混乱から抜け出した方法:
ソリューションをテストするために引っ張り続けたとき、私は利用しなければなりませんでした...
git reset --hard
これにより、ログ内の最新のコミットに戻ります。
git clean -fd
これにより、ログ内の最新のコミット以降に追跡されていないファイルが削除されます。
最終的に、問題のある設定ファイルをに変更し、権限の変更chmod 777
をコミットする必要があると判断しました。別のオプションは、Git をパーミッションに依存しないモードに変更することでした。 詳細はこちら: How do I make Git ignore file mode (chmod) changes?git config core.filemode false
次に、プルを実行して変更をマージし、ファイルとともにログを更新し、問題のあるファイルのアクセス許可を 644 に戻してコミットし、それを作業マスターにプッシュしました (許可されてよかったです)。
これは、パーミッションに失敗すると、ファイルの変更セットをマージできますが、ログ履歴にはコミットが反映されないというバグのようです!!!
ところで:私git --version
はgit version 1.5.6.5