Um git pull
não substituirá as alterações locais, a menos que você use git add
antes. Mesmo neste caso, você ainda pode recuperar seus dados.
Quando você emitiu git add
antes do pull:
mkgithub blub
cp test.sh blub/
cd blub/
git add test.sh
git pull
O pull excluirá test.sh
. Ele só fará isso se você não tiver nenhum commit no repositório local. Depois de adicionar um commit, isso não removerá test.sh
(o git o ignora ou relata um conflito de mesclagem)
O arquivo não está perdido. Ainda está no repositório do Git como uma bolha pendente.
Para recuperar o arquivo:
$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (401/401), done.
dangling blob 541060d8292ff808c9715265d063f1bae220da7c
$ git show 541060d8292ff808c9715265d063f1bae220da7 > test.sh
Isso funciona desde que você não emita git gc --prune=now
.