Я начинаю с слияния обучения в git 1.8.2. Я создал простой пример, чтобы протестировать изменение стороннего репо, перенесенного в основной проект.Git Subtree Слияние конфликтов сообщений при слиянии простого восходящего изменения
Я следую примеру 6.7 Git Tools - Subtree Merging.
Проект «под» включен в качестве подкаталога в «основном» проекте.
После того, как я внес изменения в проект «sub», git сообщает о конфликте, когда я пытаюсь объединить это изменение в «основной» проект.
Test Summary
- Создано операции РЕПО для «основного» и «суб» проектов (суб вместо стойки)
- Добавить удаленный именованный sub_remote к основному, который относится к югу
- Track sub_remote с использованием sub_branch
- Изменение и фиксация одной строки в файле в проекте «под»
- Извлечь изменения с субрука на главный/sub_branch
- Объединить main/sub_branch в main/master.
Слияние происходит с конфликтом. Слияние смущает о том, какую версию измененной строки сохранить.
<<<<<<< HEAD
main
=======
main upstream change
>>>>>>> sub_branch
main.git
sub
sub.git
tm
Complete Test Script
#!/bin/sh
# initialize empty repos
for i in main sub
do
rm -rf $i{,.git}
mkdir $i.git
cd $i.git;
git --bare init;
cd ..;
git clone $i.git
cd $i
echo $i > readme.md
git add readme.md
git commit -a -m "added readme.md"
git push origin master
cd ..
done
# add data to sub
ls > sub/data
cd sub
git add data
git commit -m "Added data"
git push origin master
cd ..
# add sub as a sub-tree in main
cd main
git remote add sub_remote ../sub.git
git fetch sub_remote
git checkout -b sub_branch sub_remote/master
git checkout master
git read-tree --prefix=sub/ -u sub_branch
git commit -m "Added sub"
git push origin master
cd ..
# make change to sub
cd sub
sed -i -e 's/main$/main upstream change/' data
git commit -a -m "upstream change made to data"
git push origin master
cd ..
# merge sub change to main
cd main
git checkout sub_branch
git pull
#merge sub_branch changes into master
git checkout master
git merge -s subtree sub_branch
cat sub/data
Новая страница в книге git-scm, которая охватывает слияние поддерева, находится здесь: https: // git-scm.com/book/en/v2/Git-Tools-Advanced-Merging # Другие типы слияний Но, я думаю, это все еще страдает от этой же проблемы. –