2017-09-29 4 views
0

Ich habe gerade versucht, these Atlassian Bitbucket instructions für die Auflösung von Zusammenführungskonflikten und festgestellt, dass es nicht richtig funktioniert.Git-Merge-Anweisungen funktionieren nicht wie erwartet

Wenn diese Anweisungen befolgt werden, überschreiben manchmal Änderungen im Zweig "develop" Änderungen, die im "source branch" vorgenommen wurden.

Zum Beispiel in einer Swift-Datei (beachten Sie, dass es sich um zwei Versionen und die Zeilennummern enthalten sind):

dies entwickelt und git versucht, diese zu halten.

required init?(map: Map){ // 67 
    super.init()   // 68 
    mapping(map: map)  // 69 
    if origin == nil { // 70 
     origin = ""  // 71 
    }      // 72 
}       // 73 

ist die Quelldatei

required init?(map: Map){ // 67 
    super.init()   // 68 
    mapping(map: map)  // 69 
}       // 70 

Wie Sie die „Quelle Zweig“ sehen können diese Zeilen Code hat gelöscht, aber git denkt „entwickeln“, um sie wieder in wieder hinzufügen sollte. (Zu Recht, wenn ich erzähle, dass ich nach Atlassian Anweisungen in meinen Zweig einmache)

Dies ist falsch, da alles in meinem Zweig versuchen sollte, jede Datei/Änderung im Entwicklungszweig zu überschreiben und einen Konflikt auszulösen, wenn es einen gibt ein.

Bin ich noob oder sind diese Anweisungen falsch?

Kann auch jemand vorschlagen, Konfliktlösung, die meine Branche als die alle und Ende verwendet?

(ich glaube, ich brauche zu haben, „entwickeln“ ausgecheckt und dann verschmelzen die „Feature Zweig“ in das. Holen Sie sich das Gefühl, dass dies obwohl die Pull-Anforderung Schritt überspringt ... wollen nicht)

+0

Nein, wir können nicht „sehen“, dass alles gelöscht wurde von dem, was Sie sehen sind. Um das zu sehen, müssen wir wissen, was sich geändert hat und wo und welcher Zweig zu welcher Branche verschmolzen ist. Die einzige Zeit, in der Konflikte bei der Zusammenführung auftreten, ist, wenn Änderungen an derselben oder an benachbarten Codezeilen vorgenommen wurden. – crashmstr

+0

@crashmstr Ich habe Zeilennummern hinzugefügt und die zwei Dateien zur besseren Übersicht in separate Codeblöcke aufgeteilt. – user1567453

+0

Verschmelzen Sie 'source' in' develop' und diese Datei und diese Zeilen * änderten sich nicht in 'develop'? Wenn Sie eine Pull-Anforderung ausführen, werden diese nicht manuell zusammengeführt. Die Pull-Anforderung wird dies nach der Genehmigung tun. – crashmstr

Antwort

0

Dies lag daran, dass der Entwicklungszweig eine "Umkehrung" daran vorgenommen hatte, nachdem der Quellzweig verzweigt und ausgecheckt worden war. Dies gab der Entwicklungsabteilung eine höhere Priorität in der Geschichte und git wird daher jegliche Änderungen in meiner Branche ablehnen. (alle 20 Dateien und wer weiß, wie viele Codezeilen)

Mit einem Kollegen sprechend stellt sich heraus, dass die Rückabwicklung aufgrund einer zufälligen Verschmelzung in den Ursprung erfolgte/entwickelt wurde.

Einfache Regel - Verwenden Sie nicht "reverse commit to", wenn andere Entwickler Zweige mit Änderungen haben.

dass Doing^überschreibt jede einzelne Änderung an andere Entwickler Ortsvereine gemacht, wenn sie fusionieren XD

Verwandte Themen