Artikelversion: Enterprise Server 2.17
Non-Fast-Forward-Fehler handhaben
Manchmal kann Git Ihre Änderungen nicht für ein Remote-Repository vornehmen, ohne Commits zu verlieren. Wenn dieses Problem auftritt, wird Ihr Push abgelehnt.
Wenn ein anderer Benutzer einen Push zum selben Branch durchgeführt hat wie Sie, kann Git Ihre Änderungen nicht pushen:
$ git push origin master
> To https://Hostname/USERNAME/REPOSITORY.git
> ! [rejected] master -> master (non-fast-forward)
> error: failed to push some refs to 'https://Hostname/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.
Sie können dieses Problem beheben, indem Sie die Änderungen, die Sie am Remote-Branch vorgenommen haben, abrufen und mit den Änderungen mergen, die Sie lokal vorgenommen haben:
$ git fetch origin
# Ruft die Änderungen von einem Online-Repository ab
$ git merge origin YOUR_BRANCH_NAME
# Mergt die online vorgenommen Änderungen mit Ihrer lokalen Arbeit
Alternativ können Sie auch einfach den Befehl git pull
verwenden, um beide Befehle gleichzeitig auszuführen:
$ git pull origin YOUR_BRANCH_NAME
# Ruft Online-Änderungen ab und mergt sie mit Ihrer lokalen Arbeit