Ich bin noch ziemlich neu git
darin, unseren Code derzeit in einer Teamumgebung zu verwalten. Ich hatte einige Probleme mit der Neugründung und habe sie mit behoben
git checkout --ours filename.txt
git add filename.txt
git rebase --continue
Jetzt möchte ich meine Änderungen verschieben und so den folgenden Befehl ausführen
$ git push origin feature/my_feature_branch
gibt mir folgenden Fehler:
To ssh://[email protected]:7999/repo/myproject.git
! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward)
error: failed to push some refs to 'ssh://[email protected]:7999/repo/myproject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Was kann ich tun, um den Fehler zu beseitigen?
PS: Ich vermeide es, die --force
Option so oft wie möglich zu nutzen.
Antworten:
Es sieht so aus, als hätte jemand neue Commits zwischen Ihrem letzten
git fetch
undgit push
. In diesem Fall müssen Sie Ihre Schritte wiederholen und noch einmal neu startenmy_feature_branch
.Nach dem
git fetch
empfehle ich die Situation mit zu untersuchengitk --all
.quelle
Wahrscheinlich haben Sie die Remote-Änderungen vor dem Rebase nicht abgerufen, oder jemand hat neue Änderungen gepusht (während Sie den Base neu erstellt und versucht haben, zu pushen). Versuchen Sie diese Schritte:
quelle
Ich hatte dieses Problem! Ich habe versucht: Git Fetch + Git Merge, aber nicht gelöst! Ich habe versucht: Git Pull, und auch nicht gelöst
Dann habe ich dies versucht und mein Problem gelöst (ähnelt der Antwort von Engineer):
quelle
Ich hatte ein ähnliches Problem und löste es mit:
git pull origin
quelle
Ich bin zu spät zur Party, aber ich habe einige nützliche Anweisungen auf der Github-Hilfeseite gefunden und wollte sie hier teilen.
Manchmal kann Git Ihre Änderung nicht an einem Remote-Repository vornehmen, ohne Commits zu verlieren. In diesem Fall wird Ihr Push abgelehnt.
Wenn eine andere Person auf denselben Zweig wie Sie verschoben hat, kann Git Ihre Änderungen nicht übertragen:
Sie können dies beheben, indem Sie die auf dem Remote-Zweig vorgenommenen Änderungen abrufen und mit den lokal vorgenommenen Änderungen zusammenführen:
Oder Sie können einfach
git pull
beide Befehle gleichzeitig ausführen:quelle
Versuchen Sie diesen Befehl
$ git push -f -u origin <name of branch>
dh
$ git push -f -u origin master
quelle
Schreibsperre für freigegebenes lokales Repository
Ich hatte dieses Problem und keiner der oben genannten Ratschläge hat mir geholfen. Ich konnte alles richtig holen. Aber Push ist immer gescheitert. Es war ein lokales Repository im Windows-Verzeichnis, mit dem mehrere Clients über den gemeinsam genutzten VMWare-Ordnertreiber arbeiten. Es schien, dass eines der Systeme das Git-Repository zum Schreiben gesperrt hatte. Nach dem Stoppen des relevanten VMWare-Systems, das die Sperre verursachte, wurde alles sofort repariert. Es war fast unmöglich herauszufinden, welches System den Fehler verursacht, also musste ich sie einzeln stoppen, bis es erfolgreich war.
quelle
Nun, ich habe den Rat hier verwendet und es hat mich verarscht, als es meinen lokalen Code direkt zum Master zusammenführte. .... also nimm alles mit einem Körnchen Salz. Mein Kollege sagte, dass das Folgende zur Lösung des Problems beitrug, das erforderlich war, um meine Niederlassung neu zu ordnen.
quelle
Gehen Sie in Eclipse wie folgt vor:
GIT-Repositorys> Fernbedienungen> Ursprung> Klicken Sie mit der rechten Maustaste und sagen Sie Abrufen
GIT-Repositorys> Remote-Tracking> Wählen Sie Ihren Zweig aus und sagen Sie Zusammenführen
Gehen Sie zum Projekt, klicken Sie mit der rechten Maustaste auf Ihre Datei und sagen Sie Abrufen vom Upstream.
quelle
quelle
Hier ist eine andere Lösung, um dieses Problem zu beheben
quelle
quelle