Git Merge
Übersicht

SilvioBetreff: Git Merge |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hier gibt es sicher welche, die sich mit Git auskennen, daher frage ich mal.
ich versuche gerade Git zu verstehen und die Grundlagen habe ich verstanden, bloß beim Merge verhält sich git nicht so wie ich es erwarte. Ich habe in einem repository zwei branches. beide haben die selbe Textdatei mit verschiedenem Inhalt. Wenn ich nun den einen branch auschecke und mit dem anderem mergen möchte, wird einfach wirkürlich der eine branch behalten und der andere wird nicht beachtet. Dabei sollte mir ja git sagen, dass es einen Konflikt gab, weil in 2 Branches Änderungen gemacht wurden an der selben Datei. Am Ende habe ich 2 branches mit dem selben Inhalt. Vorhin hat es mal geklappt, da hatte ich beim mergen noch gesagt "--no-ff" da hat er mir gesagt es gibt einen Konflikt. Ich dachte schon jetzt hab ichs verstanden, dann reproduzier ich die Ausgangssituation, mach ich das selbe nochmal und es geht nicht mehr. |
||
Silvio |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
okay ich habe glaub selbst herausgefunden, nach stundenlangem Ausprobieren ![]() also habe ein master branch mit dem Projekt und einen featurebranch, der schon weiter programmiert wurde. Ich habe nun erwartet, dass wenn ich nun beide merge, dass git mir dann sagt, dass es Unterschiede in den Dateien gibt. Diese gibt es auch, aber da der master branch nicht weiter bearbeitet wurde, überschreibt git einfach den master branch mit dem featurebranch. Hätte in der Zwischenzeit jemand anderes oder ich den Masterbranch verändert, dann merkt git das und sagt mir, dass es Konflikte gibt. Habe nun 3 Tage gebraucht um Git zu verstehen, aber es lohnt sich. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau so ist es - wenn Änderungen nicht gleichzeitig auftreten, kann es auch kein Konflikt geben. Wer zum üben einen Provozieren will:
Code: [AUSKLAPPEN] Xeres@NATHAN ~/Documents/TestRep (master)
$ git checkout -b branchA Switched to a new branch 'branchA' Xeres@NATHAN ~/Documents/TestRep (branchA) $ echo "A" > somefile.txt Xeres@NATHAN ~/Documents/TestRep (branchA) $ git add . && git commit -m 'file A' [branchA 6b20bc9] file A 1 file changed, 1 insertion(+) create mode 100644 somefile.txt Xeres@NATHAN ~/Documents/TestRep (branchA) $ git checkout master Switched to branch 'master' Xeres@NATHAN ~/Documents/TestRep (master) $ echo "B" > somefile.txt Xeres@NATHAN ~/Documents/TestRep (master) $ git add . && git commit -m 'file B' [master 2eacadb] file B 1 file changed, 1 insertion(+) create mode 100644 somefile.txt Xeres@NATHAN ~/Documents/TestRep (master) $ git merge branchA Auto-merging somefile.txt CONFLICT (add/add): Merge conflict in somefile.txt Automatic merge failed; fix conflicts and then commit the result. Xeres@NATHAN ~/Documents/TestRep (master|MERGING) $ git status # On branch master # You have unmerged paths. # (fix conflicts and run "git commit") # # Unmerged paths: # (use "git add <file>..." to mark resolution) # # both added: somefile.txt Xeres@NATHAN ~/Documents/TestRep (master|MERGING) $ cat somefile.txt <<<<<<< HEAD B ======= A >>>>>>> branchA Würde man erst das File mit Inhalt B in Master erstellen und einchecken und dann den neuen BranchA erzeugen, sind die commits linear und können automatisch gemergt werden. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group