2015-03-19 3 views
0

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

Итак, как применить фиксацию из другой ветки к рабочей копии? Это лучший способ сделать это? Такая задача кажется довольно распространенной, и, возможно, уже существует установленный рабочий процесс и инструменты для таких вещей?

+0

см [чисткой история коммитов] (HTTP: // StackOverflow .com/questions/7947322/preferred-github-workflow-for-update-a-pull-request-after-code-review/15055649 # 15055649) - команда, которую вы действительно ищете, - [rebase] (http: // git-scm.com/book/en/v2/Git-Branching-Rebasing). – AD7six

+0

Я не хочу просто скомпоновать мои коммиты (как в предоставленном ответе); Я хочу отредактировать каждую фиксацию, прежде чем применять ее для исправления ошибок. – Poma

+0

Это тот же процесс и по-прежнему использует rebase. (попробуйте/прочитайте об этом перед комментированием). – AD7six

ответ

0

Скажем, работа дерево что-то вроде:

img

и вы хотите применить только g-h к origin/master. Во-первых, создать новую ветку с помощью origin/master, а другой для фиксаций только h ДО:

git checkout -b new-branch origin/master 
git checkout -b daughter-branch h 

Теперь применяем коммиты g года

git rebase --onto new-branch g^ 
Смежные вопросы