Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Lidar com erros non-fast-forward

Às vezes, o Git não pode fazer sua alteração em um repositório remote sem perder os commits. Quando isso acontece, seu push é recusado.

Se outra pessoa tiver feito push no mesmo branch que você, o Git não poderá fazer push das alterações:

$ git push origin main
> To https://github.com/USERNAME/REPOSITORY.git
>  ! [rejected]        main -> main (non-fast-forward)
> error: failed to push some refs to 'https://github.com/USERNAME/REPOSITORY.git'
> To prevent you from losing history, non-fast-forward updates were rejected
> Merge the remote changes (e.g. 'git pull') before pushing again.  See the
> 'Note about fast-forwards' section of 'git push --help' for details.

Isso pode ser corrigido buscando e mesclando as alterações feitas na ramificação remota com as alterações feitas localmente:

$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin YOUR_BRANCH_NAME
# Merges updates made online with your local work

Ou você pode usar git pull para executar ambos os comandos ao mesmo tempo:

$ git pull origin YOUR_BRANCH_NAME
# Grabs online updates and merges them with your local work