Wie erzwinge Push-Reset auf Remote-Repository?
Den entfernten master-branch irgendwie Durcheinander. Aktuelle Entwicklung-code wird auf dem master-branch zusammen mit der neuesten verpflichtet. Offensichtlich ist die Entwicklung von code ist nicht bereit für den master-Zweig.
Also auf meinem lokalen repository, ich habe einen reset auf die neueste tag, git reset --hard (Tag)
. Der master-branch ist nun korrekt, auf meinem lokalen repository. Wenn ich jetzt versuchen, push die änderungen auf das remote-repository, git push origin master
bekomme ich einen Fehler:
To (REMOTE GIT REPOSITORY LOCATION)
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '(REMOTE GIT REPOSITORY LOCATION)'
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.
So, nach etwas recherche fand ich heraus, das --force
option. Also, ich habe einen force push auf das remote-repository, git push --force origin master
und ich habe noch einen Fehler:
Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To (REMOTE GIT REPOSITORY LOCATION)
! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to '(REMOTE GIT REPOSITORY LOCATION)'
Kann ich nicht ziehen Sie auf master, denn es enthält-Entwicklung code der nicht auf master.
InformationsquelleAutor der Frage samwell | 2012-05-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Meldung bedeutet, dass Sie sind nicht erlaubt zu tun, non-fast-forward push.
Ihre remote-repository hat wahrscheinlich
denyNonFastforwards = true
in seiner config. Wenn Sie das ändern,git push --force
funktionieren sollte.Um die Einstellung zu ändern, benötigen Sie Zugriff auf die Maschine mit dem remote repository. Von dort aus machen
git config receive.denynonfastforwards false
.InformationsquelleAutor der Antwort
Die Fernbedienung nicht zulassen, die nicht schnell vor.
Ihre beste option ist, um
git revert
alle commits, die nicht da sein sollte und vorsichtiger sein in Zukunft.git revert [commit]
erzeugt einen neuen commit, der macht, was[commit]
haben.InformationsquelleAutor der Antwort richo
Schritte, um dauerhaft zu aktivieren force push in der folgenden style -
Bearbeiten Sie die Datei namens "config" im Ordner mit der Endung ".git" auf dem remote-repository
In der git-command-line-Ausgang des fehlerhaften push, suchen Sie nach der Zeile, die sagt so etwas wie:
dann
Set "denyNonFastforwards" false"
In "config" setzen
Jetzt drücken Sie können von Ihrem lokalen Rechner mit -f
InformationsquelleAutor der Antwort emery
Versuchen, mit den
-f
- flag und setzen es nach dem remote-branch name.git push origin master -f
InformationsquelleAutor der Antwort Chris Ledet
Du bist nicht erlaubt zu tun, git push, der nicht schnell vorwärts.
Wenn die Fernbedienung GitHub, gehen Sie zu
https://github.com/$USER/$REPO/settings/branches
- und un-Schutz der Branche in Frage.Haben Sie der admin von der repo zu tun.
Wenn die Fernbedienung Ihres eigenen git-server laufen
git config receive.denynonfastforwards false
es.InformationsquelleAutor der Antwort filiph
Tritt das problem auf, wie der aktuelle Zweig ist nicht richtig konfiguriert für die ZIEHEN.
Überprüfen Sie zuerst, ob die upstream-branch ist richtig konfiguriert für das ziehen mit -
git remote show origin
. Sie finden es unter der Rubrik - Lokale Zweige konfiguriert für 'git pull':. Wenn nicht, konfigurieren Sie es mit:Geben, entsprechenden Zweig Namen für die Platzhalter - MYBRANCH
InformationsquelleAutor der Antwort Sudheesh.M.S
Ich bin mit dieser Gruppe von Befehlen zurücksetzen meine remote-repo, dies wird re-initialisieren Sie Ihre lokale repo und verknüpfen Sie mit dem remote-repo erzwingen Sie dann die drücken Sie die updates.
Ich denke, dass dieser Weg nicht funktioniert, in Ihrem Fall, kann aber nützlich sein für jemand anderen
gehen Sie in den source Ordner dann ausführen der Befehle :
beachten Sie, dass
https://github.com/*.git
ist Ihr remote-repo-link**Note: this will clear all your git history on your master branch**
InformationsquelleAutor der Antwort Shqear