2017-05-05 3 views
1

Was ist Merge-Konflikt?
Die meisten Fragen da draußen Adresse resolving merge conflict wie this eins.Was ist ein Zusammenführungskonflikt?

Aber ich habe keine Ahnung, warum passiert mir seine selbst ...


Kurz gesagt, wurden wir gesagt:

git clone url ~/lab 

Jetzt mussten wir diese Dateien bearbeiten und dann die Commit Änderungen.


Für zweite Zuordnung müssen wir folgendes tun:

git commit -am 'changes to lab1 after handin' 
git pull 
git checkout -b lab2 origin/lab2 
git merge lab1 

Jetzt ist mein Partner mich gesandt hat seine Dateien für lab1. So kann ich an seinem Code arbeiten, da er sauberer und organisierter ist.

git status 
>>> nothing to commit, working directory clean 

ich dann alle Dateien löschen

git status 
>>> list of deleted files 

git commit -am 'delete my files' 
git status 
>>> nothing to commit, working directory clean 

ich dann seine Dateien in meinem Verzeichnis

git status 
>>> list of untracked files in red 
git add . 
git status 
>>> Changes to be commit and the list of files in green 
git commit -am 'teammate files' 
git status 
>>> nothing to commit, working directory clean 

Jetzt TA extrahiert Befehle

git commit -am 'changed branch' 
git pull 
>>> Already up-to-data. (As expected!!) 
git checkout -b lab2 origin/lab2 
>>> On branch lab2 
git merge lab1 
>>> almost all files failed merge and have conflict 

Jede Erklärung warum passiert das? und wie könnte ich das verhindern? Ich habe Angst, dies allein zu tun, da ich Code entfernen könnte, der nicht entfernt werden sollte ... also würde ich lieber git merge alleine arbeiten.

+0

Warum löschen Sie alle Dateien? Und was soll 'git commit -am 'geändert werden? – tkausl

+0

@tkausl Ich löschte meine Dateien, als ich meine Teamkollektivdateien bekam. Ich möchte an seinen Dateien arbeiten. Dieser Commit tut nichts ... ein zusätzliches Commit. –

+1

Die Lösung für diese Art von Problem ist fast immer _Fragen Sie aus, was Ihr aktueller Zustand ist _. Nicht was du denkst, sondern was es ist. – Useless

Antwort

2

Der Zusammenführungskonflikt tritt auf, wenn Ihre Änderungen einen Konflikt verursachen (müssen den Inhalt des entfernten Repositorys überschreiben, benennen Sie ihn oder den Zweig, in dem Sie die Änderungen vornehmen) mit einer anderen Person der Änderungen Ihres Teams (seine Änderungen seit dem letzten Mal) Ziehen würde Ihre Änderungen überschreiben, die Sie versuchen zu schieben, oder Sie werden seine Änderungen überschreiben). Normalerweise würden Sie diesen Konflikt lösen, indem Sie ihn zusammenführen. Sie sollten in der Lage sein, die Remote-Änderungen, Ihre Änderungen und das Ergebnis zu sehen. Sie können auswählen, welche Teile des Codes gelöscht/hinzugefügt/behalten werden sollen.

+0

In der Tat machten wir den Code, der uns für das vorherige Labor geliefert wurde, und wir hatten einen Konflikt in diesem. –