私はこれがあなたのシナリオですよね。
$ git checkout ProductsAndContents
Switched to branch 'ProductsAndContents'
支店ProductsAndContents
は、ファイルtests/unit/src/models/BrandTests.js
が含まれているので、上記のcheckout
は、それを作成し、および/または特定の要求コミットして、それが最新のものだと確信します。
$ git status
# On branch ProductsAndContents
nothing to commit (working directory clean)
あなたは変更を加えず、きれいな作業ディレクトリで開始しました。これは良いことです。
$ git checkout master
Switched to branch 'master'
これは必ず最新に含まれるすべてのファイルがmaster
にコミット作るには、作業ディレクトリに最新の状態にしています。ただし、master
に含まれていないファイル、または無視されるファイルは削除または更新されません。ここに私はmaster
と仮定していますが、現在問題のファイルが含まれていません。
$ git status
# On branch master
nothing to commit (working directory clean)
この場合も、変更はありません。問題のファイルがここでは未追跡のファイルとして言及されていないという事実は、おそらく無視されることを意味する(.gitignore
または.git/info/exclude
)。 master
にはファイルが含まれていないので、ファイルが存在するかどうかは関係ありません。ここで
$ git merge ProductsAndContents
error: Your local changes to the following files would be overwritten by merge:
tests/unit/src/models/BrandTests.js
Please, commit your changes or stash them before you can merge.
Aborting
、他のブランチにマージするあなたの試みはmaster
が現在正常に罰金である、持っていないこと、ファイルを導入したいと考えています。しかし、そのファイルはあなたの作業ディレクトリにあり、git
はリポジトリに保存されているかどうか分からないものをゴミ箱に入れたくありません。別の場所で示唆されているように、あなたは(安全だと仮定して)単純にそのファイルを削除し、マージをやり直すことができます。
あなたが与えた情報で、私はあなたがここにいることを100%確信していません。あなたは、しかし、その状態をチェックするためにこれらの2つのコマンドを実行することができます:私の推測は正しいです
git ls-files master -- tests/unit/src/models/BrandTests.js
git ls-files ProductsAndContents -- tests/unit/src/models/BrandTests.js
場合、2番目のだろうが、最初のコマンドは、ファイルが存在することを表示されません。次に、.gitignore
と.git/info/exclude
をチェックして無視されているか確認してください(.gitignore
の場合は、2つのブランチのそれぞれに存在するバージョンを確認する必要があります)。
あなたはどうにかそのファイルを '.git/info/exclude'ファイルまたは' .gitignore'ファイルに入れましたか? –
[この回答](http://stackoverflow.com/a/12167041/166732)の設定オプションは役に立ちますか? – asm
こんにちはAndrew、 'core.trustctime'をfalseに設定したようです。私に正しい方向を教えていただきありがとうございます:) –