Ich benutze Git 1.7.4.1. Ich möchte die neueste Version meines Codes aus dem Repository abrufen, erhalte jedoch Fehler ...
$ git pull
….
M selenium/ant/build.properties
….
M selenium/scripts/linux/get_latest_updates.sh
M selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.
Ich habe die lokalen Kopien der Dateien gelöscht, über die sich das Tool beschwert, aber ich erhalte immer noch die Fehler. Wie checke ich die neueste Version aus dem Remote-Repo aus? - Dave
git fetch
zuerst. Ich habe keine Konflikte bekommen, aber so habe ich die neueste Version des Codes bekommen.Antworten:
Wenn Sie sich nicht für lokale Änderungen interessieren (einschließlich nicht verfolgter oder generierter Dateien oder Unterrepositorys, die sich gerade hier befinden) und nur eine Kopie aus dem Repo wünschen:
Auch dies wird alle Änderungen, die Sie lokal vorgenommen haben, zerstören. Gehen Sie daher vorsichtig vor. Denken Sie
rm -Rf
dabei darüber nach.quelle
git clean -f
ist nicht wirklich Teil der Antwort. Es werden Dateien gelöscht, die nicht im Repository gespeichert sind (z. B. in meinem Fall Protokolldateien). Sie müssen dies nicht tun, umgit pull
wieder arbeiten zu können,git reset --hard HEAD
es reicht einfach aus.git clean -f
ist wichtig, wenn Sie eine echte Bereinigung Ihres Repositoys wollen. Dies entspricht einem "Alle aus Ordner löschen -> Neueste Version abrufen / Spezifisch abrufen" in TFS. In meinem Fall ist dies das, was ich wollte.Fall 1: Kümmern Sie sich nicht um lokale Änderungen
Lösung 1: Holen Sie sich den neuesten Code und setzen Sie den Code zurück
Lösung 2: Löschen Sie den Ordner und klonen Sie ihn erneut: D.
Fall 2: Sorgen Sie sich um lokale Veränderungen
Lösung 1: Keine Konflikte mit der neuen Online-Version
wird etwas berichten wie:
Dann holen Sie sich die neueste Version
Lösung 2: Konflikte mit der neuen Online-Version
wird etwas berichten wie:
Übernehmen Sie Ihre lokalen Änderungen
Versuchen Sie, die Änderungen zu erhalten (wird fehlschlagen)
wird etwas berichten wie:
Öffnen Sie die Konfliktdatei und beheben Sie den Konflikt. Dann:
wird etwas berichten wie:
Weitere Informationen: Wie verwende ich 'git reset --hard HEAD', um zu einem vorherigen Commit zurückzukehren?
quelle
Ich vermute, dass das, was passiert ist, möglicherweise darin besteht, dass Sie die von Ihnen geänderten Dateien gelöscht haben (weil Sie sich nicht um diese Änderungen gekümmert haben), und jetzt nimmt git das Löschen als Änderung an.
Hier ist ein Ansatz, mit dem Sie Ihre Änderungen aus Ihrer Arbeitskopie in den "Stash" verschieben (abrufbar, falls sich herausstellt, dass Sie sie jemals wieder benötigen), damit Sie die neuesten Änderungen aus dem Upstream abrufen können.
Wenn Sie jemals Ihre Dateien abrufen möchten (potenzielle Konflikte mit vorgelagerten Änderungen und allem), führen Sie a aus,
git stash apply
um diese Änderungen über Ihren Code zu kleben. Auf diese Weise haben Sie einen "Rückgängig" -Ansatz.quelle
git stash pop
sei denn, Sie möchten eine Geschichte Ihrer Git-VersteckeSie müssen zuerst Ihre Dateien zusammenführen. Führen Sie eine
git status
Aktion durch, um festzustellen, welche Dateien zusammengeführt werden müssen (dh, Sie müssen zuerst die Konflikte lösen). Sobald dies erledigt ist, machen Sie esgit add file_merged
und machen Sie espull
erneut.quelle
Versuchen Sie diesen Code
quelle
Wenn Sie nur alles in Ihrem Arbeitsordner wegwerfen möchten (z. B. die Ergebnisse einer fehlgeschlagenen oder abgebrochenen Zusammenführung) und zu einem sauberen vorherigen Commit zurückkehren möchten, führen Sie a aus
git reset --hard
.quelle
Ich verstehe, dass Sie Ihre lokalen Änderungen löschen und die Daten auf Ihrer Fernbedienung abrufen möchten.
Wenn alles andere fehlschlägt und Sie (verständlicherweise) Angst vor "Zurücksetzen" haben, ist es am einfachsten, den Ursprung in ein neues Verzeichnis zu klonen und Ihr altes in den Papierkorb zu werfen.
quelle
Wenn Sie diesen Befehl ausführen, erhalten Sie das neueste Tag, das normalerweise die Version Ihres Projekts ist:
quelle
Es hört sich für mich so an, als hätten Sie core.autocrlf-Probleme. core.autocrlf = true kann Probleme verursachen, wie sie unter Windows beschrieben werden, wenn CRLF-Zeilenumbrüche in das Repository eingecheckt wurden. Versuchen Sie, core.autocrlf für das Repository zu deaktivieren, und führen Sie einen Hard-Reset durch.
quelle
Wenn Sie die Git-GUI verwenden, rufen Sie zuerst ab und führen Sie sie dann zusammen.
Abrufen über Remote-Menü >> Abrufen >> Ursprung. Zusammenführen über das Menü Zusammenführen >> Lokal zusammenführen.
Der folgende Dialog wird angezeigt.
Aktivieren Sie das Optionsfeld Tracking-Zweig (ebenfalls standardmäßig ausgewählt), lassen Sie das gelbe Feld leer und drücken Sie Zusammenführen. Dadurch sollten die Dateien aktualisiert werden.
Ich hatte bereits einige lokale Änderungen rückgängig gemacht, bevor ich diese Schritte ausführte, da ich diese sowieso verwerfen wollte, damit ich sie später nicht durch Zusammenführen entfernen muss.
quelle