3

この git pull コマンドを実行すると、Unicode ファイル名が詰まる

& git pull
From . 
  * branch            master     -> FETCH_HEAD
First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
    test-sample-files/MByte/CJK-UTF8-MultiByte/樣品套裝/サンプル.java
    test-sample-files/MByte/CJK-UTF8-MultiByte/樣品套裝/의 견본을 뽑다.java
    test-sample-files/MByte/japanese/これはサンプルのテストであり、できるだけ早く修正する必要があります.java
    test-sample-files/MByte/japanese/サンプル.java
    test-sample-files/MByte/korean/의 견본을 뽑다.java
Please move or remove them before you can switch branches.
Aborting
could not detach HEAD

ただし、gitステータスは作業ディレクトリがクリーンであると報告します

$ git status
# On branch dev/experimental
# Your branch and 'master' have diverged,
# and have 3 and 96 different commit(s) each, respectively.
#
nothing to commit (working directory clean)

「git add」、「git reset」、または「rm ...*」は状況を解決しません。どんな助けでも大歓迎です。

PS: Mac OS X Leopard (10.5) で「git バージョン 1.7.5.4」を実行しています。これは、leopard 用に見つけた最新のプレビルドです。

4

2 に答える 2

3

作業ツリーの現在の状態では、ファイルは追跡されません。そのため、git addまたはgit rm何もしません。

それらをで隠してくださいgit stash save --untracked、それらは隠し場所に保存されます。プル後に復元することはできgit stash popますが、プルによって異なるコンテンツでテーマがチェックアウトされるため、競合が発生する可能性があります。

あなたはGit1.7.5で立ち往生しているので、オプションがstashわからないので、--untracked

  • 追跡されていないファイルを一時ディレクトリに移動し、それらを復元します。

     git ls-files --other --exclude-standard | xargs -t -I file  mv file untracked
    
  • または、でそれらを追加しgit add -u、コミットします

于 2012-04-17T22:23:56.270 に答える
2

この原因については、スタック オーバーフローとMac OS X UTF-8 でエンコードされたファイル名を git で処理するための回避策で既に説明されています。にも記載されています。

于 2012-04-18T16:29:42.877 に答える