2014-11-25 10 views
8

Po prostu próbowałem używać .gitattributes po raz pierwszy. Myślę, że muszę zrobić coś złego, ponieważ to nie działa, ponieważ myślałem, że cel użycia atrybutu merge=ours jest przeznaczony dla (?).Co właściwie używa .gitattributes z merge = nasz

Przykład użycia:

Mam dwie gałęzie; jeden to "master", a drugi to "GCE-Site". W gałęzi "GCE-Site" znajdują się pliki, które mają różne ustawienia, które istnieją również w gałęzi "master", której nie chcę scalać w "master" [lub inne gałęzie].

Na obu gałęzi, mam .gitattributes zawierający następujące zasady:

README.md merge=ours 
config.php merge=ours 
.gitattributes merge=ours 
.gitignore merge=ours 
.cache/ merge=ours 

Wszystkie pliki wymagające przepisy są na poziomie głównym powiększonej wszystkiego powyżej .cache/folderu. Kiedy robię git merge GCE-Site, wszystkie pliki nadal łączą się z wzorcem, gdy tego nie chcę.

Czy jest coś, czego mi brakuje? Twoja pomoc jest bardzo doceniana. Thnx

Odpowiedz

6

Łatwa naprawa, gdy już wiedziałem, co robię: brakowało mi dodania strategii scalania z git config --global merge.ours.driver true w moim lokalnym środowisku.

+0

Wierzę, że to nie zadziała, jeśli można przeprowadzić scalanie z szybkim przewijaniem do przodu. – HuStmpHrrr

2

Jak wspomniano w „.gitattributes & individual merge strategy for a file”:

Kierowca seryjnej jest wywoływana tylko w nietrywialnych przypadków, czyli wtedy, gdy oba mistrz i testy dotknął konfiguracji (i trzeba zdefiniować sterownik ours scalania pierwszy).

Możesz zobaczyć przykład współbieżnej modyfikacji (tj. Modyfikacji w obu gałęziach) w "How do I tell git to always select my local version for conflicted merges on a specific file?".

Więc jeśli twoje scalenia nie obejmowały modyfikacji tych samych plików w folderze cache/ w obu gałęziach, twój sterownik scalania nigdy nie został wywołany.

Ale w przypadku plików z różnymi ustawieniami, polecam nie przy użyciu sterownika scalania, ale content filter driver, jak w „Keep settings in branch

content filter driver

, który pozwala na zachowanie kontroli wersji :

  • plik szablonu dla ustawień w folderze cache/
  • skrypt stanie podjąć plik szablonu i Repla ce wartość zastępcze wartości z właściwą wartością w zależności od oddziału sprawdzone.