Wie Sie verhindern, dass viel von git Konflikte, wenn git Rebase Menge von commits?

Geschichte: in der Mitte von einem Projekt, das mein Kollege erstellt einen neuen Zweig von master und fing an, Ihre schweren re-factoring arbeiten. Ich habe mein Zweig von master und angefangen, neue Sachen auf die Seite. Wir Begehen regelmäßig, aber nur ich kann rebase-code master (weil die Kollegen änderungen sind zu schwer und können nicht bereitgestellt werden vom master noch nicht). Leider sind einige unserer arbeiten verlassen sich auf die gleichen Dateien. So nach einigen Tagen der Arbeit, wenn Sie endlich einen rebase Ihre änderungen master, Sie hatte eine Menge von git Konflikte.

my_branch    #---#----#-#-------#----#--#-----#---#----#----#
            /    \              \   \   \              \    \
master     *-------*--------------*---*---*--------------*----*----*
            \                                                     /
her branch   #------#-------#-----------#-----------#------------#

Frage 1 ist: wie Sie verhindern, dass viel von git Konflikte, wenn wir arbeiten an gleichen Dateien? (oder was ist die beste Vorgehensweise in dieser situation?)

aber das ist nicht das Ende unserer Frage, ...absolut richtig, Sie versucht zu tun, rebase von master Ihr branch (haben änderungen, die ich begangen), so ist die commit-Karte sollte in etwa so Aussehen

my_branch    #---#----#-#-------#----#--#-----#---#----#----#
            /    \              \   \   \              \    \
master     *-------*--------------*---*---*--------------*----*----*
            \                   \            \                    /
her branch   #------#-------#----*------#-----*-----#------------#

Und das ist, was stört uns. Während dieser rebases Sie war die Festsetzung dieser Konflikte. Aber git nicht erinnern, Ihre Entscheidung über den Konflikt zu beheben, so dass, wenn Sie Tat ein weiteres git rebase von master zu Ihr-Zweig Sie musste Update das gleiche git Konflikte wieder, dass Sie die Befestigung in früheren rebases.

Frage 2 ist: wie sagen Sie git zu erinnern, git Konflikt Update nach git rebase von master Zweig, so dass nach dem nächsten Stellungswechsel, die wir nicht lösen können, die gleichen Konflikte immer wieder?

  • oh, ich habe vergessen, meine git-version: 1.7.4.1 , Sie sollten gleich sein
  • Genaue Frage, die ich Fragen will!
  • eine weitere update - seit einigen Jahren mache ich nur git merge statt git rebase. Ja, einige Leute sagen, dass durch die Verwendung merge Sie haben nicht die richtige Geschichte, das ist nicht wahr. Uhr youtube.com/watch?v=1ffBJ4sVUb4 um zu verstehen, wie alles im git funktioniert ( + rebase kann tatsächlich zerstörerisch ) Mein Punkt ist git merge ist viel produktiver. Ich denke mal als ist der Grund, warum github ist auch mit merge im Sie web-interface beim Umgang mit pull-requests
  • es macht ein Chaos aus Ihrem Zweig der Geschichte, obwohl ich lieber rebasierung, denn es sorgt für ein sauberes git-Geschichte, der für den feature-branch arbeite ich ab. Git merge ist ideal für pull-requests, weil es eine visuelle Darstellung, wenn eine pull-Anforderung zusammengeführt wurde Meister.
  • Ich Stimme voll und ganz, es ist sauberer. Für super kleine Projekte und Projekte, die ich alleine arbeiten verwende ich Stellungswechsel zu. Aber pragmatisch für Projekte mit vielen Entwicklern Begehen Häufig ist es viel pragmatischer zu verwenden merge sonst 10% des jeder Zeit einfach auflösen rebase Konflikte
InformationsquelleAutor equivalent8 | 2011-08-30
Schreibe einen Kommentar