Comecei a colaborar com alguns amigos em um projeto e eles usam o repositório heroku git.
Eu clonei o repositório há alguns dias e eles fizeram algumas alterações desde então, estou tentando obter as atualizações mais recentes
Executei o git pull --rebase
comando conforme indicado aqui (esta é a maneira correta de fazer isso?): Https://devcenter.heroku.com/articles/sharing#merging-code-changes
Estou tendo o erro a seguir:
$ git pull --rebase
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Meu palpite é que eu brinquei com o código e agora ele quer que eu confirme ou descarte (é isso o que stash significa?) As alterações. É isso que está acontecendo? Se for esse o caso, eu gostaria de descartar quaisquer alterações que eu possa ter feito e apenas obter o código atualizado no repositório git.
Alguma idéia do que eu posso fazer?
git push -f
Se você deseja manter as alterações de trabalho enquanto realiza uma nova refazer, você pode usá-lo
--autostash
. A partir da documentação :Por exemplo:
fonte
git config --global rebase.autoStash true
Então você não precisa passar no comutador.rebase.autostash
está disponível no 2.6).git rebase --interactive
também!Puxar com rebase é uma boa prática em geral.
No entanto, você não pode fazer isso se o seu índice não estiver limpo, ou seja, você fez alterações que não foram confirmadas.
Você pode fazer isso para contornar o problema, assumindo que deseja manter suas alterações:
git stash
git stash apply stash@{0}
ou a mais simplesgit stash pop
fonte
git stash pop
aplicar as alterações escondidas mais recentemente e evitar memorizar por mais tempoapply stash@{0}
..bashrc
(ou o que você usa):alias stashpull='git stash; git pull; git stash pop'
Primeiro comece com um
git status
Veja se você tem alguma alteração pendente. Para descartá-los, execute
fonte
Isso funciona para mim:
fonte
Você sempre pode fazer
e você não obterá (a) nenhuma alteração se tiver alterações não confirmadas que conflitem com as alterações anteriores ou (b) o mesmo efeito que stash / pull / apply: uma reformulação para incluir as alterações mais recentes do HEAD e as alterações não confirmadas restantes como é.
fonte
Quando a mudança não-estática ocorre porque o git está tentando consertar as convenções eol em um arquivo (como sempre é o meu caso), nenhuma quantidade de stash, check-out ou redefinição o fará desaparecer.
No entanto, se a intenção é realmente reestruturar e ignorar as alterações não faseadas, o que faço é excluir a ramificação localmente e verificar novamente.
Voila! Ainda não me falhou.
fonte
Se você deseja ocultar automaticamente suas alterações e removê-las para todas as novas versões, você pode fazer isso:
fonte
--autostash
quando pode ser apenas ... automático?