Was ist die korrekte Verwendung von .gitattributes mit merge = our

8

Ich habe gerade versucht, .gitattributes zum ersten Mal zu verwenden. Ich denke, ich muss etwas falsch machen, weil es nicht funktioniert, da ich dachte, dass der Zweck der Verwendung des Attributs merge=ours für (?) Gedacht war.

Ein Beispiel meiner Verwendung:

Ich habe zwei Zweige; Einer ist der "Master" und der andere ist "GCE-Site". Es gibt Dateien im Zweig "GCE-Site", die unterschiedliche Einstellungen haben, die auch im Zweig "master" vorhanden sind, den ich nicht in den "master" [oder andere Zweige] einbinden möchte.

In beiden Zweigen habe ich ein .gitattributes mit den folgenden Regeln:

%Vor%

Alle Dateien, die die Regeln benötigen, befinden sich auf der Stammebene und alles über dem .cache / -Ordner. Wenn ich git merge GCE-Site mache, verschmelzen alle Dateien immer noch mit dem Master, wenn ich das nicht möchte.

Gibt es etwas, das mir fehlt? Ihre Hilfe wird gerne in Anspruch genommen. Thnx

    
CelticParser 25.11.2014, 18:30
quelle

2 Antworten

7

Einfach beheben, sobald ich wusste, was ich tat: Ich vermisste die Zusammenführungsstrategie mit git config --global merge.ours.driver true in meiner lokalen Umgebung.

    
CelticParser 03.12.2014, 19:31
quelle
2

Wie in " .gitattributes und einer individuellen Zusammenführungsstrategie für eine Datei erwähnt":

  

Der Zusammenführungstreiber wird nur in nicht-trivialen Fällen aufgerufen, d. h. wenn sowohl der Master als auch der Test das Setup berührt haben (und Sie zuerst unseren Zusammenführungstreiber definieren müssen).

Sie können ein Beispiel für eine gleichzeitige Änderung (dh Änderung in beiden Zweigen) in " Wie sage ich git, dass ich immer meine lokale auswählen soll Version für widersprüchliche Zusammenführungen in einer bestimmten Datei? ".

Wenn also bei Ihren Zusammenführungen keine Änderungen an den gleichen Dateien im Ordner cache/ in beiden Zweigen vorgenommen wurden, wurde Ihr Merge-Treiber nie aufgerufen.

Aber in Ihrem Fall würde ich für Dateien mit anderen Einstellungen empfehlen, keinen Mischtreiber zu verwenden, sondern einen Inhaltsfiltertreiber , wie in " Einstellungen in Zweig beibehalten "

Damit können Sie die Versionskontrolle beibehalten:

  • Vorlagendatei für die Einstellungen im Ordner cache/
  • ein Skript, das in der Lage ist, eine Vorlagendatei zu übernehmen und die Wertplatzhalter mit dem richtigen Wert zu ersetzen, je nachdem, welcher Zweig ausgecheckt ist.
VonC 01.12.2014 18:25
quelle

Tags und Links