Wenn das Problem ist einfach, dass das ausgelagerte Datei mit dem Zweig nicht übereinstimmen, nur git reset
verwendet normalerweise:
git reset --hard HEAD
Das ist alles was Sie brauchen soll. Wenn Sie Master mit dev überschreiben möchten, lesen Sie weiter.
Wenn Sie Ihr Master-Zweig mit dem Inhalt Ihres dev Zweig zu überschreiben, verwenden Sie git reset
etwa so:
$ git checkout master
$ git reset --hard dev
Und dann, wenn Sie diese irgendwo schieben wollen anderes:
$ git push origin master
Beachten Sie, dass, wenn Ihr Dev-Zweig nicht von Ihrem Master-Zweig vorspult (was ich vermute, wird es nicht, da Sie gesagt haben, dass Ihr Master-Zweig einige vermasselte Sachen drin hat), werden Sie muß die --force
Flags an dem Push-to-hinzuzufügen auf einem Remote zu überschreiben:
$ git push origin master --force
Beachten Sie jedoch, dass dies eine Geschichte all normalen Einsprüche neu zu schreiben la git rebase
beinhalten kann - wenn jemand diese Fernbedienung verwendet, Sie müssen sich mit dem Gegenstück einer Upstream-Rebase befassen.
Um dieses Problem in Zukunft zu vermeiden, Ihren Freund darauf hinweisen, dass --force
mit fast nie notwendig ist. Wenn sie Konflikte bekommen, wenn sie versuchen, git push
, sollten sie git pull
zuerst, die Konflikte lösen, und dann git push
.
Wenn Sie sagen, der Master-Zweig hat Fehler, was meinst du? Git ist * gut * um Datenverlust zu verhindern, also was ist genau falsch gelaufen? Ein wenig mehr Informationen über genau das, was das Problem ist, wäre hilfreich. Ist "dev" von "Meister" abstammt? Wie verschieden sind sie? –
Hey, ein Freund hat einen Push mit --force gemacht und nun ist der Master-Zweig "Up-to-date", aber die Dateien sind nicht :). Seltsam. – xpepermint
Also haben sie mit einer Arbeitskopie in ein Repo gedrängt? –