2016-09-01 5 views
0

Я разрабатывал свое приложение и в какой-то момент понял, что то, что я делаю, является отдельной ветвью. Я вносил свои изменения в локальный репозиторий в «master», но не в удаленный репозиторий.Как переместить метку «master» в какой-то момент в Git?

В моем журнале VCS в IntelliJ я вижу следующую картину:

enter image description here

И.Э. У меня есть два разных пути развития со мной и с удаленным.

Позиция HEAD указывает, что я уже проверил место, где хочу master.

Как бы я поставил здесь хозяина? Как называется эта операция? Слияние? Rebase? Или что?

Я хочу оставить свою ветку как AsyncIntegrate и позволить мне синхронизировать с origin/master. Я не готов объединить эти параллельные линии.

UPDATE

К сожалению, в конце концов, я хочу, чтобы переместить master где origin/master является:

enter image description here

Я думал, это должно быть сделано в 2 этапа.

UPDATE 2

Будет ли правильным, если я вызываю следующую команду IntelliJ:

enter image description here

+0

Это неясно. Вы говорите, что хотите переписать удаленный «мастер» с тем, что у вас есть локально, или что-то еще? –

+0

@TimBiegeleisen см. Мое обновление пожалуйста – Dims

+0

Я дал вам ответ ниже. Тем не менее ваша формулировка не совсем ясна, но если мое предположение о вашей предпосылке будет правильным, то остальное должно работать. –

ответ

3

Это звучит, как вы хотите, чтобы переместить текущую рабочую ветвь в новую ветвь под названием AsyncIntegrate, а затем перезагрузите локальный master до origin/master.

Создание функции филиала:

git checkout master 
git checkout -b AsyncIntegrate 

Сбросить местный мастер по происхождению/мастера:

git fetch 
git checkout master 
git reset --hard origin/master 

git fetch шаг выше имеет важное значение и не должны быть проигнорированы, потому что это будет обновлять ваш местный отслеживание филиал origin/master с текущим состоянием дел e фактический дистанционный master ветка. Если по какой-то причине вы хотите использовать (возможно, устаревший) origin/master, вы можете опустить этот шаг.

Update:

Сделайте глубокий вдох и расслабиться, потому что есть небольшой шанс что-то катастрофическое произошло здесь. Вся работа, которую вы (возможно, неправильно) сделали на локальном ветке master, теперь должна быть безопасной в новом локальном ветви с именем AsyncIntegrate.И ваш локальный master будет просто синхронизироваться с состоянием пульта, который обычно находится там, где вы хотите быть.

И даже если вы потеряете предыдущую фиксацию, над которой вы работали, вы всегда сможете восстановить ее из Reflog.

+0

Какова цель второго 'git checkout master'? Я все равно буду на 'master' после' git fetch', не так ли? – Dims

+0

Я попытался сделать шаги настолько независимыми, насколько это возможно, чтобы свести к минимуму вероятность того, что вы ошибетесь. Да, если вы делаете оба шага назад, то второй мастер git checkout является избыточным и может быть пропущен. –

+0

Что произойдет с моими файлами на диске после 'git reset --hard origin/master'? Будут ли они заменены файлами с сервера с commit 'origin/master'? – Dims

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

  • Нет связанных вопросов^_^