私のラップトップには個人用の小さなgitリポジトリがあります。変更をコミットし、コミットするものがないことを確認しました。ステージングおよび変更されたすべてのファイルがコミットされました。
その後、すべてのファイルをこのリポジトリから別の場所にコピーしてブームになりました。コミットされていない変更があります。
私はいくつかの基本的なgitルールが欠けていると思います。誰かがそれについて私に提案できますか?
私のラップトップには個人用の小さなgitリポジトリがあります。変更をコミットし、コミットするものがないことを確認しました。ステージングおよび変更されたすべてのファイルがコミットされました。
その後、すべてのファイルをこのリポジトリから別の場所にコピーしてブームになりました。コミットされていない変更があります。
私はいくつかの基本的なgitルールが欠けていると思います。誰かがそれについて私に提案できますか?
私がしたこと、実行
git diff | grep -B 2 @@ | grep +++
実際に変更されたファイルを取得するには、他のすべてのファイルを元に戻します
Windows上のファイルには、おそらくキャリッジリターンラインフィードラインの末尾があり、Windowsボックスではcore.autocrlfがtrueになっている可能性があります。異なるプラットフォーム間でそのようにコピーしないでください。代わりに、Linuxボックスに新しいgitリポジトリを作成し、Windowsボックスからプルします。リポジトリを公開するには、git bundle
またはWindowsマシンで使用できます。git daemon
または、Linuxボックスでベアリポジトリを作成git push --mirror
し、Windowsマシンからリポジトリに作成して、最終バージョンを作成する場所にクローンを作成することもできます。
または、おそらくgit reset --hard HEAD
、Linuxボックスでそのまま実行して修正することができます。おそらく、完全にクリーンな作業ツリーを確保するために、最初に.gitフォルダー以外のすべてを削除する必要があります。
スタッシュに失うものがない場合は、次のようにします。
git checkout .
これにより、作業ツリーが以前のコミットに戻ります
フォルダ間の権限は変更されますか? Git は権限の変更を登録します。
私は同じ問題に直面しています。ただし、ホスト Linux システムから Virtual Box ゲスト システムにファイルをコピーしました。一部のリンクが削除され、一部のファイルのアクセス許可が変更されましたが、これは git config core.filemode false を実行することで修正できました。
Windows から Linux にコピーすると、ファイル権限に違いが生じます。これらの変更は git によっても追跡されます。