Wie kann ich Kraft "git pull" zum überschreiben von lokalen Dateien?
Wie kann ich erzwingen, ein überschreiben von lokalen Dateien auf einen git pull
?
Das Szenario ist Folgendes:
- Ein team-Mitglied ist die änderung von Vorlagen für eine Webseite arbeiten wir an
- Sie sind das hinzufügen einige Bilder zum Bilder-Verzeichnis (vergisst aber hinzufügen, um Sie unter Kontrolle der Quellcodeverwaltung)
- Sie senden die Bilder per mail, später, zu mir
- Ich bin das hinzufügen der Bilder unter der Quelle kontrollieren und treibt Sie auf GitHub zusammen mit anderen änderungen
- Sie nicht ziehen-updates von GitHub, da Git nicht überschreiben möchten Ihre Dateien.
Dies ist der Fehler, ich bin immer:
Fehler: Nicht arbeiten-Baum-Datei 'public/images/icon.gif" würde überschrieben werden durch merge
Wie kann ich Kraft Git zu überschreiben? Der Mensch ist ein designer - Regel, die ich lösen aller Konflikte, die von hand, also der server hat die aktuellste version, Sie braucht nur das update auf Ihren computer.
jemand dies liest, der denkt, Sie könnte verlieren Dateien, ich habe Sie in dieser position und fand Sublime Text Puffer hat mich gerettet - wenn ich an etwas arbeiten, dann versehentlich löschen Sie alles, indem Sie versuchen zu lösen ein ähnliches problem oder eine Antwort auf diese Frage und habe die Dateien öffnen, die in Sublime (es gibt eine gute chance), dann die Dateien noch da sein, Erhaben ist, entweder nur dort, oder in der undo-history
im Grunde genommen, nur ein ziehen aus der Entwicklung nach dem ersten checkout -b. tun Sie Ihre Arbeit, dann schieben Sie Sie zurück in.
Kurze Antwort: löschen und neu erstellen, Zweig. 1. Löschen Zweig:
Ändern Sie alle CRLF auf LF enden, (start clean)
git reset --hard origin/branch_to_overwrite
im Grunde genommen, nur ein ziehen aus der Entwicklung nach dem ersten checkout -b. tun Sie Ihre Arbeit, dann schieben Sie Sie zurück in.
Kurze Antwort: löschen und neu erstellen, Zweig. 1. Löschen Zweig:
git branch <branch> -D
2. Zurücksetzen auf ein commit, bevor der Konflikt: git reset <commit> --hard
3. Re-erstellen die Branche: git branch <branch>
4. Legen Sie die tracking-server: git --set-upstream-to=origin/<branch> <branch> 5. Pull:
git pull`Ändern Sie alle CRLF auf LF enden, (start clean)
git config core.autocrlf false; git ls-files -z | xargs -0 rm; git checkout .
InformationsquelleAutor Jakub Troszok | 2009-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wichtig: Wenn Sie irgendwelche lokalen änderungen, die Sie verloren. Mit oder ohne
--hard
option, werden alle lokalen commits, die noch nicht hochgeladen wurden, gehen verloren.[*]Wenn Sie irgendwelche Dateien, die nicht von Git verwaltet werden (z.B. hochgeladene Benutzer-content), diese Dateien werden nicht betroffen sein.
Ich denke, das ist der richtige Weg:
Dann haben Sie zwei Optionen:
Ist ODER Wenn Sie auf einem anderen Zweig:
Erklärung:
git fetch
lädt die neuesten von entfernten, ohne zu versuchen, merge oder rebase nichts.Dann die
git reset
setzt den master-Zweig zu dem, was Sie gerade geholt. Die--hard
option ändert alle Dateien im working tree entsprechend die Dateien inorigin/master
Pflegen, aktuelle lokale commits
[*]: Es ist erwähnenswert, dass es möglich ist, zu pflegen, aktuelle lokale commits durch anlegen einer Verzweigung von
master
vor dem zurücksetzen:Nachdem die alten verpflichtet werden gehalten in
new-branch-to-save-current-commits
.Übernommene änderungen
Übernommene änderungen, jedoch (selbst inszeniert), verloren. Stellen Sie sicher, zu verstauen und zu Begehen, alles, was Sie brauchen. Dafür können Sie Folgendes ausführen:
Und dann erneut diese nicht übernommenen änderungen:
Es ist eine beliebte Frage, also ich möchte klären, auf der top-Kommentar hier. Ich habe nur Befehle ausgeführt, wie beschrieben in dieser Antwort, und es wurde nicht entfernt, ALLE lokalen Dateien. Nur aus der Ferne verfolgt-Dateien überschrieben wurden, und jede lokale Datei, wurde unberührt gelassen.
Dieser arbeitete für mich und meine lokalen Dateien NICHT gelöscht wurden.
in Fall, dass Sie ziehen aus einem repo, das hat seine remote-branch-name unterscheidet sich von "master" verwenden
git reset --hard origin/branch-name
Angesichts der Menge an upvotes auf diese Frage und die Antwort, denke ich, dass git beinhalten sollte, einen Befehl wie
git pull -f
InformationsquelleAutor RNA
Versuchen Sie dies:
Sollte es tun, was Sie wollen.
Ich denke nicht, dass dies korrekt ist. die oben ausführen einer Zusammenführung, nicht überschreiben, die aufgefordert wurde, die Frage: "Wie wird die Kraft git zu überschreiben?" Ich habe nicht die Antwort, ich bin derzeit auf der Suche nach ihm.. im moment schalte ich um auf den Zweig mit dem code, den ich behalten will "git checkout BranchWithCodeToKeep", dann tun "git branch -D BranchToOverwrite" und dann schließlich "git checkout -b BranchToOverwrite". Sie haben nun den genauen code von BranchWithCodeToKeep auf dem ast BranchToOverwrite die zimmerreserviereung, ohne das ausführen einer Zusammenführung.
statt der Verschmelzung mit "git pull", versucht git fetch --all ein, gefolgt von 'git reset --hard origin/master'
ja, der @lloydmoore Lösung für mich gearbeitet. Könnte mit einer Antwort anstatt einfach nur einen Kommentar.
Dieser wird zurückgesetzt, die aktuellen änderungen zurück zur letzten Verzweigung Begehen gezogen. Dann git pull führt die änderungen aus dem aktuellen Zweig. Dieser Tat genau das, was ich wollte, es zu tun.. Danke!
InformationsquelleAutor Travis Reeder
WARNUNG:
git clean
löscht alle Ihre nicht verfolgte Dateien/Verzeichnisse und können nicht rückgängig gemacht werden.Manchmal nur
clean -f
nicht helfen. In Fall müssen Sie nicht verfolgte VERZEICHNISSE, option-d auch benötigt wird:WARNUNG:
git clean
löscht alle Ihre nicht verfolgte Dateien/Verzeichnisse und können nicht rückgängig gemacht werden.Erwägen Sie die Verwendung
-n
(--dry-run
) Flagge zuerst. Dies wird Ihnen zeigen, was gelöscht wird, ohne tatsächlich löschen alles:Beispiel-Ausgabe:
Ich denke, das Szenario Beschreibung macht deutlich, dass er nicht wirklich wegwerfen wollen den Inhalt. Eher was er will, ist halt git baulking bei überschreiben der Dateien. @Lauri, sollte dies nicht geschehen sind Sie. Leider scheinen die Menschen haben falsch verstanden, die Essenz der Szenario-Beschreibung - siehe mein Vorschlag.
ENDLICH. git clean-f -d ist praktisch beim sauber machen, scheitert alles zu reinigen.
es sei denn, Sie sind zusätzlich in
.gitignore
für die, die Sie wollen
git clean -dfx
. Die-x
ignoriert .gitignore. In der Regel bauen Ihre Produkte geben wird .gitignore.InformationsquelleAutor David Avsajanishvili
Wie Igel, ich denke, die Antworten sind schrecklich. Aber obwohl Igel, die Antwort könnte besser sein, ich glaube nicht, dass es so elegant ist, wie es sein könnte. Die Art, wie ich gefunden, dies zu tun ist durch die Verwendung von "Holen" und "verschmelzen" mit einer definierten Strategie. Die sollten es so machen, dass Ihre lokalen änderungen beibehalten werden, solange Sie nicht eine der Dateien, die Sie versuchen zu zwingen, ein überschreiben mit.
Zuerst ein commit für Ihre änderungen
Dann Holen Sie die änderungen und überschreiben, wenn es einen Konflikt
"-X" option name, und die "ihrigen" ist der Wert für diese option. Sie wählen "Ihre" geändert, statt "Ihr" wechselt, wenn es einen Konflikt gibt.
Dito - dieser arbeitete für mich, wenn dabei eine sehr große merge (GitHub pull request), wo ich wollte nur, es zu akzeptieren, alle oben, was ich hatte. Gute Antwort! In meinem Fall die letzten zwei Befehle: 1)
get fetch other-repo
; 2)git merge -s recursive -X theirs other-repo/master
Dieses wird überschreiben, die Konflikte mit den repositories Dateien und nicht Ihre lokalen, richtig?
Beste Antwort. Die höchste akzeptierte Antwort ließ mich in meinem Fall auf der freistehenden Leiter. Ich wechselte zurück zum lokalen master-branch und lief
git merge -X theirs origin/master
Moment mal...nicht
git add *
undgit commit -a <more-options-here>
den gleichen Effekt haben? Warum müssten Sie beide?InformationsquelleAutor Richard Kersey
Statt:
Ich würde dazu raten die folgenden:
Keine Notwendigkeit zu Holen, alle Fernbedienungen und Zweige, wenn Sie gehen, um wieder auf die " origin/master-branch Recht?
Ja, die meisten meiner rep kommt von hier 🙂 Dies wird auch entfernen Sie alle nicht verfolgte Dateien. Etwas, das ich vergessen hatte, und wurde schmerzlich daran erinnert, gerade 2 Tage her...
Sehen Sie die Kommentare auf dieser anderen Antwort: stackoverflow.com/a/8888015/2151700
Diese nicht entfernen meine nicht verfolgte Dateien; das ist eigentlich das, was ich erwarten würde. Gibt es einen Grund, es könnte für einige Menschen und nicht für andere?
Nicht verfolgte Dateien sind nicht affect4ed von git reset. Wenn Sie wollen, dass Sie auch entfernt werden, tun
git add .
ersten, bevorgit reset --hard
InformationsquelleAutor Johanneke
Sieht es aus wie der beste Weg ist, zuerst:
Löschen Sie alle nicht verfolgte Dateien und fahren Sie dann mit den üblichen
git pull
...git-clean ist ein eher stumpfes instrument, und könnte werfen viele Dinge Weg, die Sie behalten möchten. Besser zu entfernen, oder benennen Sie die Dateien, die git beschwert sich über Sie, bis der pull gelingt.
Ich glaube nicht, dass dies im Allgemeinen funktioniert. Gibt es nicht eine Möglichkeit zu tun, im Grunde ein git clone remote über eine erzwungene git pull?
fetch origin && git reset --hard origin/master
Ist
git clean
die beste Antwort hier? Scheint, wie entfernen von Dateien ist nicht unbedingt das, was der OP will. Sie bat um "ein überschreiben von lokalen Dateien" nicht löschen.InformationsquelleAutor Jakub Troszok
"Warnung, dies wird dauerhaft löschen Sie Ihre Dateien, wenn Sie ein beliebiges Verzeichnis/* Einträge in Ihre gitignore-Datei.
Einige Antworten scheinen zu sein schrecklich. Schrecklich im Sinne von, was passiert ist @Lauri, indem Sie die folgenden David Avsajanishvili Vorschlag.
Eher (git > v1.7.6):
Später können Sie reinigen die stash-Geschichte.
Manuell, one-by-one:
Brutal, all-at-once:
Natürlich, wenn Sie wollen, um zu gehen zurück zu, was Sie versteckt:
Wenn Sie nicht haben, 1.7.6, die Sie nachahmen können
--include-untracked
einfach, indem Sie vorübergehendgit add
-ing gesamte repo, dann sofort verstauen.Ich Stimme mit Igel. Wenn Sie die beliebten Antworten hier, sind Sie mehr als wahrscheinlich finden Sie Sie versehentlich tötete eine Menge von Sachen, die Sie nicht wirklich wollen, zu verlieren.
Ich hatte andere nicht verfolgte Dateien--außer das man die merge/ziehen wollte, zu überschreiben, so dass diese Lösung funktioniert am besten.
git stash apply
brachte alle meine nicht verfolgte Dateien mit Ausnahme (zu Recht) diejenigen, die das Zusammenführen von bereits erstellten: "bereits vorhanden ist, wird keine Kasse." Funktionierte perfekt.Dies ist die sauberste Antwort, und sollte das akzeptiert man. Um sich Tipparbeit ersparen, können Sie das kurze Formular aus:
git stash -u
.InformationsquelleAutor Hedgehog
Finden Sie vielleicht dieser Befehl hilfreich, um Sie wegzuwerfen lokalen änderungen:
Tun, und dann ein cleanup (entfernt nicht verfolgte Dateien aus dem working tree):
Wenn Sie möchten, entfernen Sie nicht die Verzeichnisse zusätzlich zu nicht verfolgte Dateien:
Obwohl, die Antwort könnte nicht passen genau der Beschreibung, noch hat mich gerettet aus der frustration von git twiddling mit dem Wagenrücklaufzeichen (Veranstaltung mit autocrlf false). Wenn git reset --hard HEAD lässt Sie nicht mit "Nein" geänderte Dateien, diese "-f" - flags sind sehr hilfreich. Dank einem Haufen.
InformationsquelleAutor Vishal
Statt der Verschmelzung mit
git pull
, versuchen Sie dies:git fetch --all
gefolgt von:
git reset --hard origin/master
.InformationsquelleAutor Lloyd Moore
Das einzige, was für mich gearbeitet wurde:
Dadurch werden Sie wieder fünf begeht und dann mit
Fand ich, dass von der Suche bis wie rückgängig machen Git merge.
Hi, das ist eigentlich ein trick für einen
work around
aber wirklich effektiv. Da einige Konflikte kann passieren, nur in wenigen begeht, dann zurücksetzen 5 verpflichtet wird sicherzustellen, dass keine Konflikte mit remote-code.InformationsquelleAutor Chris BIllante
Das problem bei all diesen Lösungen ist, dass Sie alle sind entweder zu Komplex, oder, ein noch größeres problem, ist, dass Sie entfernen Sie alle nicht verfolgte Dateien vom web-server, die wollen wir nicht, da gibt es immer erforderlich, Konfigurations-Dateien, die auf dem server sind und nicht in die Git-repository.
Hier ist die sauberste Lösung, die wir verwenden:
Der erste Befehl ruft die neuesten Daten.
Der zweite Befehl überprüft, ob es irgendwelche Dateien, die zum repository Hinzugefügt und löscht diejenigen, die nicht verfolgte Dateien aus dem lokalen repository, welches zu Konflikten führen würde.
Dem Dritten Befehl überprüft-alle Dateien, die lokal geändert werden.
Schließlich machen wir auch ein ziehen, das update auf die neueste version, aber diesmal ohne irgendwelche Konflikte, da nicht verfolgte Dateien, die in die repo nicht mehr vorhanden sind und alle lokal veränderten Dateien sind schon die gleichen wie in der repository.
Ja natürlich
git merge origin/master
wird schneller und wohl auch sicherer. Denn wenn jemand hat neue änderungen, während das entfernen der Dateien, die von diesem Skript (das wird wahrscheinlich nicht passieren, aber möglich), das ganze ziehen könnte scheitern. Der einzige Grund, warum ich legtepull
drin ist, weil jemand möglicherweise nicht tätig werden auf dem master-branch, aber einige andere Filiale und ich wollte das Skript universal zu sein.Wenn Sie selbst erstellte Dateien wie option Dateien, steckte Sie in
.gitignore
.InformationsquelleAutor Strahinja Kustudic
Ich hatte das gleiche problem. Niemand hat mir diese Lösung, aber es funktionierte für mich.
Ich löste es, indem:
.git
Verzeichnis.git reset --hard HEAD
git pull
git push
Jetzt funktioniert es.
InformationsquelleAutor John John Pichler
Zunächst einmal versuchen, den standard-Weg:
Warnung: die Oben genannten Befehle können Ergebnisse in Daten/Dateien Verlust nur, wenn Sie noch nicht über Sie verpflichtet! Wenn Sie nicht sicher sind, stellen Sie die Sicherung zuerst, Ihre ganze repository-Ordner.
Ziehen Sie Sie dann wieder.
Wenn die oben nicht helfen und Sie kümmern sich nicht um Ihre nicht verfolgte Dateien/Verzeichnisse (stellen Sie die Sicherung zuerst, nur für den Fall), versuchen Sie die folgenden einfachen Schritte:
Dies wird ENTFERNEN Sie alle git-Dateien (excempt
.git/
dir, wo Sie alle verpflichtet), und ziehen Sie es wieder.Warum
git reset HEAD --hard
könnte in einigen Fällen fehlschlagen?Benutzerdefinierte Regeln in
.gitattributes file
Dass
eol=lf
Regel in .gitattributes könnte Ursache git eine Datei ändern änderungen durch die Umwandlung CRLF line-endings in LF in einige text-Dateien.Wenn das der Fall ist, haben Sie zu verpflichten, diese CRLF/LF-änderungen (durch überprüfung in
git status
), oder versuchen:git config core.autcrlf false
temporäre ignorieren Sie.Dateisystem incompability
Wenn Sie mit dem Datei-system, das nicht unterstützen Erlaubnis Attribute.
Im Beispiel haben Sie zwei repositories, eine auf Linux/Mac (
ext3
/hfs+
) und ein weiteres auf FAT32/NTFS-basierte Datei-system.Als Sie feststellen, es gibt zwei verschiedene Arten von Datei-Systeme, so dass Sie die eine, die nicht die Unterstützung von Unix-Berechtigungen grundsätzlich nicht zurücksetzen können Sie die Datei Berechtigungen auf dem system, die nicht unterstützen diese Art von Berechtigungen, also egal wie
--hard
Sie versuchen, git immer erkennen, dass einige "änderungen".InformationsquelleAutor kenorb
Bonus:
Spricht von pull/fetch/merge in den vorherigen Antworten, würde ich mag zu teilen eine interessante und produktive trick,
git pull --rebase
Diese obige Befehl ist der nützlichste Befehl in meinem Git Leben gerettet eine Menge Zeit.
Bevor Sie Ihre neu commit zum server, versuchen Sie diesen Befehl, und es wird automatisch synchronisieren Sie die neuesten änderungen auf dem server (mit fetch + merge) und Ihre Verpflichtung auf die Spitze in das Git-Protokoll. Es gibt keinen Grund zur Sorge über die manuelle pull/merge.
Details finden sich in Was bedeutet "git pull --rebase" zu tun?.
InformationsquelleAutor Sazzad Hissain Khan
Ich hatte ein ähnliches problem. Ich hatte, dies zu tun:
git clean
mit VorsichtInformationsquelleAutor Ryan
Basierend auf meinen eigenen ähnlichen Erfahrungen, die angebotene Lösung von Strahinja Kustudic oben ist mit Abstand das beste. Wie andere haben darauf hingewiesen, simply doing hard-reset entfernen alle die nicht verfolgte Dateien, die könnte auch viele Dinge, die Sie nicht wollen, entfernt, wie config-Dateien. Was sicherer ist, ist zu entfernen, nur die Dateien, die Hinzugefügt werden soll, und für diese Angelegenheit, würden Sie wahrscheinlich auch zur Kasse alle lokal veränderten Dateien werden aktualisiert.
In diesem Sinne, ich aktualisiert Kustudic-Skript, um genau das zu tun. Ich auch Fix einen Tippfehler (einer fehlt " im original).
Die Kasse der geänderten Dateien ist erforderlich, damit dies funktioniert 100% der Zeit. Ich aktualisierte mein Skript mit, dass vor langer Zeit, aber vergessen, Sie zu aktualisieren, auch hier. Ich verwende Sie auch ein wenig anders als Sie. Ich checkout-Dateien, die jede Art von änderung, die nicht nur M, so dass es funktioniert die ganze Zeit.
InformationsquelleAutor Rolf Kaiser
Ich die anderen Antworten zusammengefasst. Sie können ausführen
git pull
ohne Fehler:Warnung: Dieses Skript ist sehr mächtig, so könnten Sie Ihre änderungen verloren gehen.
Ich vermute, dass die Dritte Zeile
git reset --hard HEAD
können redundant sein; meine lokalen man-page (2.6.3) sagen, dassreset
in der zweiten Zeilegit reset --hard origin/master
"Standardwerte", um den KOPF in allen Formen."Ich denke dein Verdacht ist richtig, aber wenn sich die zweite Zeile nicht funktionieren wird(aus irgendeinem Grund) Dritte Zeile gut arbeiten, um Sie zurückzusetzen. Diese Lösung muss nicht optimiert werden. Ich habe nur zusammengefasst, andere Antworten. Das ist alles. Vielen Dank für Ihren Kommentar. 🙂
InformationsquelleAutor Robert Moon
Ich glaube, es gibt zwei mögliche Ursachen für Konflikte, die gelöst werden müssen, getrennt, und soweit ich das sagen kann keine der oben genannten Antworten beschäftigt sich mit beidem:
Lokalen Dateien, die nicht gelöscht werden müssen, entweder manuell (sicherer) oder wie bereits in anderen Antworten, von
git clean -f -d
Lokale commits, die nicht auf dem entfernten branch gelöscht werden müssen. IMO der einfachste Weg dies zu erreichen ist mit:
git reset --hard origin/master
(ersetzen Sie 'master' von egal, in welcher Filiale Sie arbeiten, und führen Sie einengit fetch origin
ersten)InformationsquelleAutor tiho
Scheint es, wie die meisten Antworten hier sind fokussiert auf die
master
Zweig; es gibt jedoch Zeiten, wenn ich arbeiten bin auf die gleiche feature-Zweig in zwei verschiedenen Orten, und ich will einen Stellungswechsel in eine sich in das andere, ohne viel durch Reifen springen.Basiert auf einer Kombination von RNA ' s Antwort und torek Antwort auf eine ähnliche Frage, habe ich mit dieser, die funktioniert prächtig:
Führen Sie diese aus einem Zweig und es werden nur zurückgesetzt, Ihre örtliche Filiale der upstream-version.
Diese können Sie schön zu setzen, in ein git alias (
git forcepull
):git config alias.forcepull "!git fetch ; git reset --hard @{u}"
Oder in Ihrem
.gitconfig
Datei:Genießen!
InformationsquelleAutor JacobEvelyn
Ein einfacher Weg wäre:
Dies überschreibt Ihre lokale Datei mit der Datei auf git
InformationsquelleAutor maximus 69
Ich hatte das gleiche problem, und aus irgendeinem Grund, sogar ein
git clean -f -d
würde es nicht tun. Hier ist warum: aus irgendeinem Grund, wenn Sie Ihre Datei von Git ignoriert werden (über einen .gitignore-Eintrag, vermute ich), es immer noch stört, über das überschreiben dieser mit einem späteren ziehen, aber ein sauber nicht entfernen, es sei denn, Sie fügen-x
.InformationsquelleAutor Tierlieb
Ich löste diese selbst durch:
wo das Letzte Kommando gibt eine Liste von dem, was Ihre lokalen änderungen waren. Ändern halten Sie die "tmp" - Zweig, bis es annehmbar ist, und dann verschmelzen Sie wieder auf master mit:
Für das nächste mal, können Sie wahrscheinlich behandeln Sie diese in eine sauberere Möglichkeit durch einen Blick in "git stash "branch", obwohl stash ist wahrscheinlich zu führen, dass Sie Probleme auf den ersten paar versucht, so zu tun ersten Versuch auf einem nicht-kritischen Projekt...
InformationsquelleAutor Simon B.
Ich habe eine seltsame situation, in der weder
git clean
odergit reset
funktioniert. Ich habe zu entfernen, die in Konflikt stehende Datei ausgit index
mit dem folgenden Skript auf jeden unberührte Datei:Dann bin ich in der Lage, ziehen Sie einfach gut.
InformationsquelleAutor Chen Zhang
Ich kenne eine viel einfachere und weniger schmerzhafte Methode:
Das ist es!
InformationsquelleAutor ddmytrenko
Diese vier Befehle für mich arbeiten.
Überprüfen/pull nach der Ausführung dieser Befehle
Habe ich versucht, eine Menge, aber endlich Erfolg mit diesen Befehlen.
InformationsquelleAutor vishesh chandra
Trotz der ursprünglichen Frage, die top-Antworten können zu Problemen führen, für Menschen, die das gleiche problem haben, aber nicht wollen, zu verlieren Ihre lokalen Dateien. Siehe zum Beispiel Al-Punk und crizCraig die Kommentare.
Folgende Fassung verpflichtet Ihre lokalen änderungen in eine temporäre Niederlassung (
tmp
), checkt die ursprünglichen Zweig (die ich ' m vorausgesetzt, istmaster
) und führt die updates. Man könnte dies mitstash
, aber ich habe festgestellt, dass es meist einfacher ist, einfach die Benutzung der branch - /merge-Ansatz.denen wir annehmen, dass die anderen repository ist
origin master
.InformationsquelleAutor Snowcrash
Nur tun
So vermeiden Sie unerwünschte Nebenwirkungen, wie das löschen von Dateien oder Verzeichnissen, die Sie behalten wollten, etc.
InformationsquelleAutor user2696128
Den index zurücksetzen und den Kopf zu
origin/master
, aber nicht zurücksetzen die arbeiten Baum:InformationsquelleAutor
Lese ich über alle Antworten, aber ich war auf der Suche nach einem single-Befehl, dies zu tun. Hier ist, was ich Tat. Hinzugefügt git alias .gitconfig
Führen Sie Ihren Befehl als
entspricht
InformationsquelleAutor Venkat Kotra
Anforderungen:
Lösung:
Holen mit einem sauber von Dateien und Verzeichnisse ignorieren .gitignore und hard-reset zu Herkunft.
InformationsquelleAutor vezenkov