Se você tem certeza de que ninguém fez alterações no seu repositório git e está trabalhando na versão mais recente, git pullnão faz sentido como uma solução em seu coração ...
Então foi provavelmente o que aconteceu, você usou git commit --amend
Permite combinar as alterações faseadas com a confirmação anterior, em vez de confirmar como uma captura instantânea totalmente nova. Também pode ser usado para simplesmente editar a mensagem de confirmação anterior sem alterar seu instantâneo.
Tutorial ATLASSIAN: reescrevendo o histórico
No entanto, não é recomendável executar git commit --amend se você já enviou o commit ao GitHub , porque "alterar não apenas altera o commit mais recente - ele o substitui inteiramente. Para o Git, ele parecerá um commit totalmente novo" o que significa para outro desenvolvedor no seu GitHub, o histórico se parece com A-> B-> C, mas para você se parece com A-> B-> D, se o GitHub permitir push, todos os outros terão que corrigir manualmente o histórico
Essa é a razão pela qual você recebe a mensagem de erro ! [rejected] master -> master (non-fast-forward). Se você sabe que ninguém efetuou a alteração mais recente, você pode fazê- git push --forcelo. Isso alterará o histórico do git em seu repositório público . Caso contrário ... você pode executar git pull, mas acredito que isso terá o mesmo resultado que você não passou git commit --amend, ele criará um novo commit (por exemplo: histórico do git após o git pull: A-> B-> C-> D )
para obter mais detalhes: Como alterar seu último commit