2016-04-23 11 views
-1

Ich habe viele andere Fragen zu diesem Thema gelesen, und die meisten Antworten beinhalten tun git reset --hard Herkunft/Meister, die uns alle unsere engagierten Änderungen verlieren, die ich kann es mir nicht leisten.git pull ist nicht möglich, es gibt nicht zusammengefügte Dateien

Hier finden Sie die Fehlermeldung, die ich im Terminal erhalten:

enter image description here

Wie kann ich dieses Problem beheben? Ich möchte nur die Upstream-Version des Masters in meinen lokalen Master importieren und dann meine Änderungen an den Upstream-Master übertragen. Ich weiß git reset --hard upstream/Master wird die Upstream-Änderungen zu meinem lokalen Master importieren, aber ich möchte nicht alle meine Änderungen, die ich gemacht habe, verlieren.

+2

Verwenden Sie 'git stash', um die Dateien vorübergehend zu speichern, und' git stash apply', um den Saum zurückzuholen, nachdem Sie gezogen haben. Außerdem sollten Sie wahrscheinlich keine '.DS_Store' Dateien einchecken. –

+0

Um Nicks Kommentar zu verfolgen: Sie können' .DS_Store' zu ​​Ihrer '.gitignore' Datei hinzufügen, oder, wahrscheinlich, besser (da es systemabhängig ist), zu Ihrer '$ HOME/.git-core.excludesfile' Datei. – Evert

+0

Wahrscheinlich wäre es in diesem Fall besser, zuerst den Zusammenführungskonflikt zu lösen und erst dann mit der nächsten Zusammenführung fortzufahren. Soweit ich weiß, ist .DS_Store keine Datei, die Sie aus verschiedenen Zweigen zusammenführen möchten. Deshalb sollten Sie diese Datei von git control mit 'git rm -f .DS_Store' entfernen und dann zur Liste der ignorierten Dateien hinzufügen. – user3159253

Antwort

0
# save your changed files in a stash that behaves like a stack 
git stash 

# Pull changes from upstream 
git pull origin master 

# get the changed files from stash and apply to the current branch 
git stash apply 
+0

Warum bewerben, und nicht pop? – Evert

+0

anwenden und pop beide bekommen die geänderten Dateien aus dem Versteck. Der Hauptunterschied besteht darin, dass apply nicht aus dem stash entfernt wird, während pop aus dem stash entfernt werden kann, wenn kein Konflikt vorliegt. Es ist wichtig zu beachten, dass git stash pop im Konfliktfall nicht aus dem Stash entfernt werden kann. Dies kann dazu führen, dass der Benutzer etwas aus dem Stash, das er entfernt hat, erneut anwendet. git stash anwenden scheint berechenbarer und einfach zu bedienen, nachdem alles in Ordnung ist, können Sie einfach stash Tropfen git. –

Verwandte Themen