0

パスとファイル名にアクセント付きの文字が含まれるリポジトリがあります。私はmsysgit1.8.0-previewにアップグレードし、ブランチの1つ(それを呼びましょうrecent)で作業を続け、必要に応じてコミットしてプッシュしました。v1.7.10で導入されたUnicodeサポートのためにリポジトリを移行する必要があることに気付いたとき、ここにある手順に従いました。

すべての「非アクティブ」ブランチを移行でき、それらの間で問題なくチェックアウトできます。しかし、私はもうチェックアウトできませrecentん。Gitレポート:

error: The following untracked working tree file would be overwritten by checkout:

<list of files with accented letters>

Please move or remove them before you can switch branches

によると、追跡されていないファイルはありませんgit status。私が到達できる唯一の方法recentは、BitBucketのメインブランチとして設定し、リポジトリのクローンを作成することです。私がそのブランチにいるとき、追跡されてgit statusいないファイルはなく、すべてが最新であると報告します。移行手順はそこでは機能しません(ここでも、追跡されていないファイルは機能しません)。また、別のブランチに切り替えると、元に戻すことはできません。

私はこの時点でちょっと迷っています、勇敢な魂が私を助けてくれますか?リモートリポジトリにプッシュするのは私だけです。ありがとう!

4

1 に答える 1

1

これが取引です。ファイルがあります。これをa.txtと呼びましょう。これは作業ディレクトリにありますが、メインブランチには存在しません。おそらくリストされている.gitignoreので、実行しても表示されませんgit statusrecentブランチには、おそらくa.txtという名前のファイルが含まれています。ブランチにチェックアウトしようとするとrecent、gitはa.txtというファイルを作業ディレクトリに配置しようとしますが、既にそこにあるため、配置できません。

解決策:gitが表示するエラーメッセージに注意してください!recentそのリスト内のファイルをまったく別のディレクトリに移動して、失われないようにします。そうすれば、ブランチを問題なくチェックアウトできるはずです。ちなみに、lsは一般的に、ファイルが存在するかどうかを確認するためのより信頼性の高い方法ですgit status

于 2012-12-20T16:53:53.167 に答える