2017-09-21 4 views
-1

Ok, ich bin neu in diesem Bereich. Wenn es ein Remote Repo gibt und ich habe es auf meinem Mac geklont, wenn ich git ziehen und jemand anderes Änderungen am Master vorgenommen hat, werden meine Änderungen überschrieben?Git ziehen, was passiert im wirklichen Leben?

Welche Regeln folgten? In meiner aktuellen Erfahrung werden Dateien, die ich nicht geändert habe, überschrieben, aber ich habe keine Erfahrung darüber, was passieren würde, wenn Dateien, die ich geändert habe und jemand anderes geändert hat, Konflikte haben. Wird ich gebeten, eine Entscheidung zu treffen, oder wird sie überschrieben?

Dank

Antwort

0

Bei Pull-Konflikt, haben Sie Möglichkeit zu wählen, ob Sie Ihre eigene Änderung verlieren oder nicht. Hier wird gezeigt, wie Sie es beheben können (How to resolve merge conflicts in Git?). Aber natürlich müssen Sie mit dem Team darüber sprechen.

Es ist immer am besten, solche Konflikte zu vermeiden. Die Verwendung von branches hilft, wenn Sie innerhalb einer Gruppe arbeiten. Hier ist eine große Einsicht: http://nvie.com/posts/a-successful-git-branching-model/

+0

Ich verstehe es nicht. Aus meiner Erfahrung bin ich nie gefragt zu wählen. Meine Dateien werden automatisch aktualisiert. Was, wenn ich Änderungen vom Meister nicht akzeptieren wollte? –

+0

Wenn Sie keine Änderungen vom Master wollen, warum haben Sie den ersten Platz eingenommen? – 1615903

+0

@GeorgeAsda Hier wird über 'mergetool' erwähnt, das Sie möglicherweise einrichten möchten. https://stackoverflow.com/questions/1435754/how-do-i-resolve-a-conflict-after-git-pull Beachten Sie, dass 'git pull'' git fetch' plus 'git merge' ist. – popuptoast

0

Wenn eine Remote-Repo ist, und ich habe geklont es auf meinem Mac, wenn ich git Pull und jemand anderes hat Änderungen an den Master werden meine Änderungen vorgenommen überschrieben werden?

Ja die Änderungen werden hinzugefügt (integriert) auf der lokalen Kopie Ihres aktuellen Zweiges, wenn Sie den Git ziehen.

Was git pull tut, könnten Sie viele Informationen darüber finden? Um es kurz zu halten. Dies fügt die Änderungen von Remote Repo zu Ihrer aktuellen Zweigstelle hinzu oder integriert sie.

git pull = git fetch + git merge FETCH_HEAD 

Was folgte Regeln? In meiner aktuellen Erfahrung Dateien, die ich nicht geändert habe, sind überschrieben, aber ich habe keine Erfahrung, was passiert, wenn Dateien, die ich geändert habe und jemand anderes geändert haben, was Konflikte haben. Wird ich gebeten, eine Entscheidung zu treffen, oder wird es überschrieben werden?

Beantworten Sie die zweite Frage. Ihr aktueller Zweig ist nicht auf dem neuesten Stand mit origin/master, wenn Sie den Git-Pull ausführen, wird es alle Änderungen holen und hinzufügen. Wenn Sie feststellen, ob ein Konflikt zwischen den Dateien besteht, können Sie dies mithilfe mehrerer GUI-Tools lösen. Beispiel: vimdiff, kdiff3, meld, diffuse usw. Sie können dies in Ihrer mergtool-Konfiguration konfigurieren.

How to resolve git merge conflicts in cli?