Git: Wie zu ignorieren, schnell nach vorne und wieder Ursprung [Zweig], um früher zu Begehen?
Ich verwendet
git reset --hard dc082bc...
wieder auf den Zweig, um einen gewünschten früheren Zustand, aufgrund von einigen schlechten verpflichtet. Dies hat zurückgespult meinem lokalen Niederlassung in Ordnung. Allerdings möchte ich Zurückspulen zu dem ast, auf 'origin' auf dem gleichen commit, so dass ich wieder starten kann. Könnte mir jemand sagen wie man wieder die Ursprungs-Filiale (nicht master) zu Begehen?
Ich habe versucht git push origin master, aber es gibt die folgende Fehlermeldung
! [abgelehnt] branch -> branch (non-fast-forward) error: failed to push einige refs zu '[email protected]:xxx/xxx.git' Um zu verhindern, dass Sie verlieren history, non-fast-forward updates wurden abgelehnt Verschmelzen Sie die remote-änderungen, bevor Sie wieder. Siehe die Anmerkung zu fast-forwards' section of 'git push --help' für weitere details.
- Sie werden bald (git1.8.5, Q4 2013) haben einen
git push --force
mehr gezielt. Siehe meine neue Antwort unten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen
git push --force
zu erzwingen drücken.So, wenn viele Leute bereits gezogen, die denselben Zweig von origin, das kann dazu führen, dass einige Stellungswechsel-Problem auf Ihrer Seite.
Die Bedienung kann gesperrt werden, auf der server-Seite, wie ebneter Punkte aus (in den Kommentaren):
Jedoch, im Fall von GitHub, solche Einstellungen sind nicht leicht verfügbar für den Benutzer die Verwaltung seiner GitHub-repo.
Also, wenn Sie
git push --force
durch Fehler, alles, was Sie mit Links ist öffnen Sie einen Fall, um die GitHub-Unterstützung, für Sie zu prüfen, Ihre lokalen (d.h. "GitHub") reflogs und sehen, ob Sie die Wiederherstellung Alter verpflichtet.(Da reflogs sind lokale, wie habe ich in Erinnerung, vor kurzem. So begeht, die durch neue ersetzt werden, während ein
push --force
sind nur noch sichtbar, wenn keine 'git gc
' oder 'git prune
' bereits stattgefunden hat, an der GitHub server-Seite)So Marco Ceppi besteht (in den Kommentaren):
Meine Vorherige Antwort, und die Tatsache, dass eine erzwungene
git push
kann wirklich mess up anderen Mitwirkenden lokalen repos, git 1.8.5 (bevorstehenden Q4 2013) sehen Sie eine neue option:Sehen den Ursprung dieser option in dieser thread:
Sehen Sie die volle Dokumentation der
--force-with-lease
im commit 28f5d17Erklären, dass die "lease" Teil, die option:
Dies ist bereits getestet und erwähnt in der "What ' s cooking in git.git (Aug 2013, #07, mi, 28)":
Hinweis: "
git push --force-with-lease
" gelehrt wurde, um zu berichten, wenn die pushbenötigt, um Kraft (oder schneller Vorlauf).
Damit dieser Befehl ist detaillierter in der Ausgabe mit git 2.8 (März 2016)
Hüten Sie sich vor, die option wird ignoriert/umgangen, als erklärt in Git 2.13 (Q2 2017).