Gree Subtree Scalanie raportów powoduje konflikt podczas scalania prostej zmiany w górę

Zaczynam od scalania poddrzewa uczenia się w git 1.8.2. Stworzyłem prosty przykład, aby przetestować zmianę repozytorium strony trzeciej na migrację do projektu głównego.

Idę za6.7 Narzędzia Git - Łączenie subtree przykład.

Projekt „sub” jest dołączony jako podkatalog w projekcie „main”.

Po dokonaniu zmiany w projekcie „sub” git zgłasza konflikt, gdy próbuję połączyć zmianę w projekcie „głównym”.

Podsumowanie testu

Utworzono repo dla projektów „main” i „sub” (sub zamiast rack)Dodaj zdalny nazwany sub_remote do głównego, który odnosi się do subŚledź sub_remote za pomocą sub_branchZmień i zatwierdź jedną linię w pliku w projekcie „sub”Ciągnij zmiany z podrzędnego do głównego / podrzędnegoPołącz main / sub_branch z main / master.

Połączenie nie powiedzie się z powodu konfliktu. Scalanie jest mylone co do wersji zmienionej linii do zachowania.

<<<<<<< HEAD
main
=======
main upstream change
>>>>>>> sub_branch
main.git
sub
sub.git
tm

Kompletny skrypt testowy

#!/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

questionAnswers(2)

yourAnswerToTheQuestion