git checkout erros, embora o status git relate que a árvore de trabalho está limpa

Estou no meu localmy-feature ram

git status relatóriosnothing to commit, working tree clean

Quero mudar para desenvolver ramo e fazergit fetch egit merge lá (eu prefiro quegit pull)

No entanto, isso gera um erro abaixo

Aqui eu verifico primeiro o status e mostra que tudo está limpo

mymbp:MyProj username$ git status
On branch my-feature
nothing to commit, working tree clean

Próximo, tento fazer checkout do meu ramo de desenvolvimento, que é um ramo local existente

On branch my-feature
nothing to commit, working tree clean
mymbp:MyProj username$ git checkout develop
error: Your local changes to the following files would be overwritten by checkout:
    MyProj.sln
Please commit your changes or stash them before you switch branches.
Aborting

Reclama quemyProj.sln foi alterado mesmo quegit status diz que nada mudou.

Issuinggit status novamente confirma que nada mudou

mymbp:MyProj username$ git status
On branch my-feature
nothing to commit, working tree clean

UPDATE 1

Doinggit ls-files --stage --debug MyProj.sln mostra como abaixo e não vejo 4000 ou 8000 --skip-worktree ou--assume-unchanged bandeiras)

mymbp:MyProj username$ git ls-files --stage --debug MyProj.sln
100644 40c3593ed572beb2139c189455274f8900a1340c 0   MyProj.sln
  ctime: 1541703970:521058155
  mtime: 1541637062:121492660
  dev: 16777220 ino: 8470003
  uid: 501  gid: 20
  size: 55684   flags: 0
mymbp:MyProj username$ 

Issuinggit show develop:MyProj.sln mostra-me o número de arquivos do projeto e seus GUIDs na solução, seções globais para pré e pós-solução, mas a saída é muito longa, mostrando apenas as configurações de Liberação, Depuração e alguns GUIDS. Ainda não sei o que fazer com isso.

UPDATE 2

Então, parece que o arquivo MyProj.sln está na árvore de trabalho, mas não no índice e confirmação (HEAD). Com base na explicação do @torek, emitir git add MyProj.sln deve adicionar esse arquivo ao índice, mas isso não é verdade, pois nada é adicionado e o status git não retorna nada antes de eu adicionar o git e depois de o fazer. Enquanto isso, o git checkout ainda reclama que o MyProj.sln foi alterado. git diff também não retorna nada

UPDATE 3

Eu também encontrei alguém sugerindo emitir estes 2 comandos para obter o hash de commit HEAD e depois ver o que mudou nele. Vejo muitos arquivos duplicados, enquanto outros não. Aqueles que não parecem ser arquivos que adicionei no meu ramo de recursos atual. Os duplicados parecem ser arquivos de @ remo

mymbp:MyProj username$ git rev-parse HEAD
1ca8d8a7c5eff0f2a03eb185f1b25aff27c1d2fd
mymbp:MyProj username$ git ls-tree -r 1ca8d8a7c5eff0f2a03eb185f1b25aff27c1d2fd

E aqui está a saída dele

UPDATE 4

inha configuração é:

mymbp:MyProj username$ git config --list
credential.helper=osxkeychain
core.excludesfile=/Users/username/.gitignore_global
core.autocrlf=input
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
user.name=User Name
[email protected]
color.ui=true
color.status.changed=blue normal
color.status.untracked=red normal
color.status.added=magenta normal
color.status.updated=green normal
color.status.branch=yellow normal bold
color.status.header=white normal bold
commit.template=/Users/username/.stCommitMsg
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=https://github.com/SomeSystems/MyProj.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.develop.remote=origin
branch.develop.merge=refs/heads/develop
branch.feat-1.remote=origin
branch.feat-1.merge=refs/heads/feat/feat-1
branch.1234-refactoring.remote=origin
branch.1234-refactoring.merge=refs/heads/1234-refactoring
mymbp:MyProj username$ 

questionAnswers(1)

yourAnswerToTheQuestion