Git: Конфликт при сливане на форк

fork | git

Git: Конфликт при сливане на форк

С един колега работим по няколко проекта. Решихме, че понеже кода отзад ще е еднакъв за всички проекти, ще е най-лесно да работим по един основен проект, а останалите да бъдат форкове на основния. По този начин, можем да добавяме нови функционалности само в основния проект, а останалите просто да синхронизираме.

Идеята се оказа доста добра. Синхронизацията на проекти в BitBucket работи идеално. Всеки път когато някой проект е назад с промените се появява едно бутонче, след натискането на което, проектите се синхронизират. Снощи обаче ми “изгърмя”” грешка, че синхронизацията не може да бъде усъществена, понеже има конфликт в CSS файла.

Ето какво направих за да оправя проблема:

1. На проекта, на който исках да приложа промените, добавих като отдалечено хранилище основния проект:

1
$ git remote add upstream <url-на-оригиналния-проект>

2. Изтеглих кода на оригиналния проект:

1
$ git fetch upstream

3. Започнах сливането:

1
$ git merge upstream/master

4. Оправих ръчно конфликтните файлове.

5. Подадох промените:

1
$ git commit -am 'Merge changes from original project'

6. Публикувах промените на сървъра.

След тези няколко прости стъпки проектите бяха синхронизирани, а бутона за сливане вече беше изчезнал.