2010-05-27 12 views
7

Gdy pliki binarne, swfs, słoiki i pliki FLV są zmieniane lokalnie, a ja próbuję pobrać zmiany, git próbuje je scalić i raporty są sprzeczne.Powiedz git, aby nie łączyć plików binarnych, ale wybrać

Następnie rozgałęzam się do tymczasowej gałęzi i zatwierdzam lokalne zmienione pliki binarne i łączę je ponownie po pobraniu z rekurencyjną ich strategią. -- Za dużo pracy.

Czy istnieje sposób, aby powiedzieć git, nie próbować scalania plików binarnych i zapytaj mnie, której z tych wersji użyć.

Odpowiedz

6

Można założyć napęd scalić w .gitattributes pliku (tylko dla danego poddrzewa, tylko dla niektórych typów plików)

Zobacz this question na przykład (lub this one).

# choose the name of the merge driver to be use for all jar files 
echo *.jar merge=keepTheir > dirWithJarFiles\.gitattributes 

stwierdzenie sterownik scalania w config z repo Git:

git config merge.keepTheir.name "always keep their during merge" 
git config merge.keepTheir.driver "keepTheir.sh %O %A %B" 

lub

git config merge.keepMine.name "always keep mine during merge" 
git config merge.keepMine.driver "keepMine.sh %O %A %B" 
[merge "keepMine"] 
     name = always keep mine during merge 
     driver = keepMine.sh %O %A %B 

Przykład daję nie poprosi Cię o wybór, ale zawsze Wersja "mine" (lub "yours") podczas łączenia.
Ale można dostosować skrypt wykonany przez ten sterownik scalania, aby zadać pytanie, a następnie zastosować swój wybór do wszystkich scaleń.

Powiązane problemy