Проблема слияния ветки в master в git - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть мастер с файлами A, B, CI. У меня есть ветка с именем «feature» с файлами: D, E, F.

Да, моя ветвь НЕ была отрезана от моего мастера, поэтому файлымежду веткой и мастером нет ничего похожего.

Теперь я хочу существенно заменить содержимое моего мастера тем, что находится в ветке.

Что я могу сделать?

Ответы [ 3 ]

0 голосов
/ 14 декабря 2018

Я хочу ... заменить содержимое моего master на то, что в [feature]

Похоже, вы вообще не хотите сливаться.Я бы сделал это:

git checkout master
git tag old-master
git reset --hard feature

Ветвь в git не является контейнером для файлов: это всего лишь имя для конкретного коммита.

Команда git checkout master выполняет две вещи;

  1. Это делает рабочее пространство похожим на то, что коммит master говорит, что должно выглядеть, но нам все равно, и
  2. Это делает master бытьтекущая ветвь.

Команда git tag old-master является необязательной: она создает новое имя (old-master) для коммита, который больше не будет master, на случай, если вывозможно, когда-нибудь захочет найти его снова.

git reset --hard feature - это команда money: она выполняет две функции:

  1. Изменяет текущую ветку (master), ссылаясь натот же коммит, на который ссылается feature, и
  2. он повторно проверяет его, делая рабочее пространство похожим на то, что коммит мастер / функция говорит, что он должен выглядеть.
0 голосов
/ 15 декабря 2018

если вы заменяете все содержимое мастера функцией, тогда вам нужно удалить все из мастера, верно?чем это следует сделать:

git checkout master
git rm -rf *
git merge feature
0 голосов
/ 14 декабря 2018

Вы можете попробовать следующее:

git checkout feature git merge -s ours master git checkout master git merge feature

Ссылка: https://git -scm.com / docs / git-merge

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...