Я хочу ... заменить содержимое моего master
на то, что в [feature
]
Похоже, вы вообще не хотите сливаться.Я бы сделал это:
git checkout master
git tag old-master
git reset --hard feature
Ветвь в git не является контейнером для файлов: это всего лишь имя для конкретного коммита.
Команда git checkout master
выполняет две вещи;
- Это делает рабочее пространство похожим на то, что коммит
master
говорит, что должно выглядеть, но нам все равно, и - Это делает
master
бытьтекущая ветвь.
Команда git tag old-master
является необязательной: она создает новое имя (old-master
) для коммита, который больше не будет master
, на случай, если вывозможно, когда-нибудь захочет найти его снова.
git reset --hard feature
- это команда money: она выполняет две функции:
- Изменяет текущую ветку (
master
), ссылаясь натот же коммит, на который ссылается feature
, и - он повторно проверяет его, делая рабочее пространство похожим на то, что коммит мастер / функция говорит, что он должен выглядеть.