2012-01-12 18 views
20

外付けハードドライブにコピーすることで、gitリポジトリを別のOSに移動しました。そして今私がgit diffを実行すると、すべてのファイルモードが変更されたことを報告します。リポジトリの移動後にgit diffのレポートモードが変更される

diff --git a/.gitignore b/.gitignore 
old mode 100644 
new mode 100755 
diff --git a/.npmignore b/.npmignore 
old mode 100644 
new mode 100755 
diff --git a/.travis.yml b/.travis.yml 
old mode 100644 
new mode 100755 
diff --git a/LICENSE b/LICENSE 
old mode 100644 
new mode 100755 
diff --git a/README.md b/README.md 
old mode 100644 
new mode 100755 

私は本当に私がこのことについて行うことになっています、ファイルのパーミッションについて多くを知りませんか?

モードを変更しますか?すべての非実行ファイルのモードを元に戻しますか? gitリセット?

+0

からOSやOSへの@館の答えで発見されましたか? –

+0

Xubuntu to Crunchbang Linux – fent

答えて

11

おそらく、外付けハードドライブには元のファイルのアクセス権を尊重しない別のファイルシステムが存在していた可能性があります。私はコミットする前に手で修正するだけです。

たとえば、USBサムドライブでよく使用されるFAT32は、実行権限をサポートしていません。 FAT32ファイルシステムから通常のUnixライクなファイルシステムにファイルをコピーすると、すべてのファイルの実行許可が設定されるのが一般的です。

この種の情報を保持する場合は、ファイルを直接ドライブにコピーしないでください。代わりに、tarファイル(オプションで圧縮されている)を作成し、もう一方の端で展開します。 tar形式はUnixの許可ビットを追跡します。

git自体は、実行可能ファイル以上の実行可能ファイルを追跡していないことに注意してください。モードの変更が唯一の違いで、すべてを再コピーしたくない場合は、git diffの出力をスクリプトに変換して、影響を受けるすべてのファイルに対してchmod -xを実行することができます。

+0

そうだとしたら、別の方法で再転送します。私はすべてをファイルに圧縮することを考えています。私はこれらのファイルを手作業で修正しているわけではありません。 – fent

+0

また、よりスマートなファイルシステムで外部ディスクを再フォーマットしてください。どのFSをどこからやり取りしていますか?そして、フォーマットされた外部ディスクは何ですか? –

+1

from/to:ext4、external:ntfs – fent

39

あなたは、Gitは、ファイルモードの違いを無視させる

git config core.filemode false

を設定し、これを適用することができます。

このソリューション

another question

+1

@ DeaDEnDこれは正解IMOとしてマークされていて、おそらくQで言及する価値がありますか? –

関連する問題