2012-11-21 8 views
5

ブランチを切り替えたいですか?エラーを取得します。gitブランチを切り替えることができません: "ファイルがありません"が作業ディレクトリがクリーン

error: Untracked working tree file 'foo.phtml' would be overwritten by merge. 

このファイルを削除した場合、次のファイルが表示されます。問題は、2つのブランチに非常に大きなファイルの違いがあることです。

これは私が試したものです:

$ git reset --hard HEAD 
HEAD is now at 8a2a95c Initial checkin 
$ git checkout otherbranch 
error: Untracked working tree file 'foo.phtml' would be overwritten by merge. 
$ git status 
# On branch master 
# Your branch and 'origin/master' have diverged, 
# and have 1 and 677 different commit(s) each, respectively. 
# 
nothing to commit (working directory clean) 

ここで間違っていますか?

また、私はすでにあなたがチェックアウトしたいブランチは、あなたの現在のブランチで追跡されていないfoo.phtmlのような多数のファイルが含まれている問題に直面

git clean -f -d 

答えて

4

を試してみました。あなただけのファイルを削除し、そうしようとすることができているようです:

git checkout -f otherbranch 
+0

私の同僚は同じ瞬間に気づいた:-)興味深いのは、なぜgit statusにきれいな作業ディレクトリがあるのか​​ということです。 – Alex

+1

未追跡のファイルが表示されない場合、 '.gitignore'がそれらのファイルを上書きする可能性があります。 – mavam

4

後でファイルを気にしないだけの場合には、作業ディレクトリを掃除が、場合にあなたが失うことになる

git stash -u 

を使用します何か、隠し場所から戻すことができます。今度はあなたの他の支店をチェックアウトすることができます。

もう1つのシナリオは、ファイルが1つのブランチで無視され、他のブランチでは無視されることです。この場合、stashコマンド(git statusが何か変更されていることが示されている場合)には、git checkout -f theotherbranchでフォローアップする必要があります。

関連する問題