2016-05-18 2 views
0

В настоящее время у меня есть две ветки: Master and Dev. На прошлой неделе я совершил свою работу над Branch Master (ветвь ошибочна), и теперь мне нужно изменить эти коммиты на ветку DEV (правая ветвь), что лучший способ сделать это?Изменение обязывает другую ветку

Im используя GitHub рабочий стол на MAC

Приветствия, Рафаэль

+0

Можете ли вы показать нам в виде диаграммы, какова связь между ветвями 'Dev' и' Master'? –

ответ

0

Ваш вопрос остается неясным. Поэтому я предполагаю, что вам нужна ваша старая версия мастера, и вам нужна ваша новая версия Dev. Это означает, что вам нужно будет изменить историю GIT. Если вы переместили эти коммиты на свой пульт, это не то, что вы должны делать, так как вы не хотите возиться с git-историей.

Что вы делаете, так это cherry-pick совершает капитальный ремонт, а затем перезагружает вашего хозяина до совершения преступления.

Прежде чем сделать это, вы должны сохранить ваши данные:

git checkout master 
git checkout -b backup_master 
git checkout DEV 
git checkout -b backup_DEV 

Как вишневого выбрать: How to cherry-pick multiple commits

0

Моя мысль заключалась в использовании заплат, чтобы избежать конфликтов возможно.

git checkout master 
git format-patch -1 HEAD (if thats all you want) 
git checkout dev 
git apply —check file.patch (check it first) 
git am < file.patch 

Заменить ГОЛОВУ с HASH SHA для старейшей фиксации вы хотите, и тогда она будет создавать * .patch для каждого коммита тока. Затем примените их к dev в правильном порядке по отдельности.

Затем вы можете проверить мастер снова, перейдите к фиксации до тех, которые вы не хотите на главном, проверив этот SHA-хэш. Затем верните его с хорошим сообщением. Я думаю, что это возможно. Пожалуйста, поправьте меня, если я неправильно понял или если я ошибочно ошибаюсь.

0

Если вы нажали эти фиксации на свой пульт, вы не можете удалить фиксацию из ветви MASTER.

Вы можете сделать одну вещь, чтобы получить последний код филиала MASTER для отделения DEV.

для этого: обратно вы Dev филиал git checkout -b backup_DEV затем:

git checkout DEV 

git stash 

git rebase MASTER 

git push DEV 

git stash pop 

Теперь вы можете увидеть, что совершить в DEV.

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