5

(クリーンなプロダクション タイプのリポジトリに) プルすると、すべての変更セットが表示され、ファイルが変更されたように見え、コミットが必要になります。git ログには、これらの変更を引き起こしたはずのコミットが表示されません...変更はログのメモなしでプルされるだけなので、同期していないと考えられます。

プルの結果には、各ファイルの「更新が必要」というメッセージが表示されます。

4

2 に答える 2

5

このGit プロジェクトに示されているように、これは、Git が Unix で開発され、Windows で複製されたプロジェクトの eol スタイルを調整しようとしたときに発生する可能性があります。

msysgit 経由 トラブルシューティング

git bash でコマンドを実行します。git config --global core.autocrlf falseこれが行われていない場合、git svn rebase は、ソースに変更が加えられたと考えて「更新が必要」と報告します。コミットで問題が発生する可能性があります。

詳細については、このSO の回答を参照してください。

于 2011-06-07T10:27:14.353 に答える
5

私が混乱から抜け出した方法:

ソリューションをテストするために引っ張り続けたとき、私は利用しなければなりませんでした...

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 --versiongit version 1.5.6.5

于 2011-06-08T01:52:48.423 に答える