2013-11-29 3 views
1

При слиянии филиалов Git автоматически удаляет код, который не следует удалять. В основном у нас есть два основных направления: MASTER и DEVELOP.Код удаления Git merge, который должен оставаться

  • MASTER имеет наш код ПРОДУКЦИИ.
  • DEVELOP имеет наш текущий сценарий разработки.

Все новые коды начинаются в других ветвях, которые обычно относятся к проблеме или новой функции. Проблема возникает, когда мы пытаемся объединить эту функцию или ветвь исправления в разработке.

Наша повседневная деятельность является: (текущая ветвь разработки):

git pull origin develop 
git checkout -b some-feature. 

Оба программисты добавить код и совершает (мы совершаем больше, чем один раз в день). В конце дня мы пытаемся объединить наши вещи. Во-первых, программист А делает толчок.

git add . 
    git commit -m 'last commit before push' 
    git checkout develop 
    git merge some-feature 
    git push develop 

Проблем пока нет. Затем программист Б пытается сделать то же самое, но он должен сделать первый шаг!

git add . 
    git commit -m 'last commit before push' 
    git checkout develop 
    git merge some-feature-b 
    git pull origin develop 

Git успешно извлекает и объединяет происхождение/развитие. Может возникнуть некоторый конфликт, никаких проблем с конфликтами. Наша проблема заключается в том, что Git удаляет код, который не следует удалять, и мы не имеем права говорить об этом.

Что мы делаем неправильно?

+1

Был ли код удален в другой ветке? Git не удалит код без причины (ваши команды выглядят отлично) – knittl

+1

Трудно сказать, не зная подробностей о том, что происходит в ветвях. Git будет не просто случайным образом удалять код в слияниях, если он не был удален в одном из объединенных ветвей. – Ikke

+0

см. Может быть опция -force активирована по умолчанию см. Https://www.kernel.org/pub/software/scm/git/docs/git-push.html –

ответ

1

Я бы вытащил сначала, а затем слился.

git checkout some-feature 
# work 
git add . 
git commit -m 'last commit before push' 

git checkout develop 
git pull develop 
git merge some-feature 

Таким образом, вы объединяете местный some-feature филиал в уточненном develop отрасли.

Смежные вопросы