2014-01-28 5 views
3

Репозиторий, связанный с этим вопросом, находится here.GitHub: применить мастер-фиксацию к другому ответвлению

Я создал новую ветку под названием apt-offline-python3-dev от ведущей ветки с
Веб-интерфейс GitHub.

То, что я хочу сделать, это взять на фиксаций от главного отделения от совершения 774 - 784, и, следовательно, сделать их принадлежность к apt-offline-python3-dev ветви, а не принадлежность к master отрасли.

Потому что, когда вы смотрите на latest совершить, например, это ясно говорит мастер вместо APT-форум-python3-DEV, что логично, потому что я послал все эти коммиты к главной ветви, до реструктуризации репозиторий.

Затем я хочу, чтобы сбросить мастер ветку обратно в исходное состояние, а значит снова совершить 9f2f667d13 как видно на this странице на 16 июня 2013 г.

Теперь я знаю о git cherry-pick и git merge, но дон Я действительно знаю, возможно ли это вообще.

Обновление:
+1 для ответа Мэтта ведущего меня в правильном направлении. К сожалению, все еще сохраняются проблемы.
Вот что происходит, когда я выдавать команды в порядке Мэтт наводит на мысль:

git checkout apt-offline-python3-dev 
Branch apt-offline-python3-dev set up to track remote branch apt-offline-python3-dev from origin. 
Switched to a new branch 'apt-offline-python3-dev' 

git cherry-pick 9f2f667d134330c0de8700258ab98cae0ac89438 
error: could not apply 9f2f667... half implementation of lock, please verify 
hint: after resolving the conflicts, mark the corrected paths 
hint: with 'git add <paths>' or 'git rm <paths>' 
hint: and commit the result with 'git commit' 

Потому что это уже не удается здесь, нет необходимости вызывать команду git revert.

Теперь, если один переворачивает порядок и заменяет git revert с git reset --hard, он на самом деле работает:

git reset --hard 9f2f667d134330c0de8700258ab98cae0ac89438 
HEAD is now at 9f2f667 half implementation of lock, please verify 

git cherry-pick ba8662eb8e01cebc969126650baa22776a27430d 
[apt-offline-python3-dev 78c9aa5] Another initial test commit 
Author: codingaround <[email protected]> 
24 files changed, 1438 insertions(+), 1328 deletions(-) 
create mode 100644 IMPORTANT_README.md 
rewrite apt_offline_core/AptOfflineMagicLib.py (85%) 

git log раскрывает, что хэш является новым:

git log 
commit 78c9aa5b732d559f141c9bf77c801c1644710432 
Author: codingaround <[email protected]> 
Date: Mon Sep 30 20:11:55 2013 +0200 

    Another initial test commit 

вопрос, который теперь остается: Как сохранить хэши commit или это невозможно?

ответ

2

Используйте git cherry-pick, чтобы применить изменения от мастера до нужной ветви:

git checkout apt-offline-python3-dev 
git cherry-pick <sha1> 
git cherry-pick <sha1> 
... 

Затем, на отдельном этапе, откатить изменения в мастера:

git checkout master 
git revert <sha1> 
git revert <sha1> 
... 

(мерзавец Revert добавит новый совершает отмену внесенных изменений)

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