2013-12-19 2 views
4

Я изначально работал над веткой git с именем «feature». Затем я совершил свои изменения.Изменения слияния на отдельной ветке после git checkout <commit hash>

Тогда я заметил, что некоторые новые созданные файлы не должны быть в моей фиксации. Итак, я нашел lastest commit hash1b33aa (я использую команду git log).

После этого я сделал:

git checkout 1b63aa 

Тогда я сделал несколько изменений (я, хотя я все еще был на художественном отделении ... моя ошибка), и совершил еще раз.

Тогда я бегу git branch, он печатает:

* (detached from 1b33aa) 
    feature 

Как объединить назад те изменения, которые я только что сделанные в feature отрасли сейчас?

+0

Что вы подразумеваете под «последней фиксацией хэша»? Вы имеете в виду фиксацию, на которую указывает «HEAD»? – Ajedi32

+0

Можете ли вы «git cherry-pick» вступить в вашу фишку? –

+0

Да, я имею в виду изменения, которые я только что сделал –

ответ

7

Сейчас вы находитесь на отдельной ветке. Кажется, вы хотите заменить свою ветку feature этим. Безопасный способ сделать это, чтобы переименовать feature к чему-то еще, а затем повернуть текущую ветвь в соответствующую ветвь с именем feature:

git branch -m feature feature-bak 
git checkout -b feature 

В своем первом этапе, я думаю, что вы хотели сделать git reset вместо git checkout :

git reset 1b63aa 

с другой стороны, если вы не хотите, чтобы заменить feature ветвь, но слияние изменений в текущей ветви к feature, вы можете сделать так:

git checkout -b temp 
git checkout feature 
git merge temp 
+0

Да, это то, что мне тоже понравилось. Вопрос: «Как я могу объединить те изменения, которые я только что сделал, чтобы включить ветку?» заставил меня подвергнуть сомнению эту интерпретацию. – Ajedi32

+0

Я тоже добавил ответ для этой части, чтобы быть в безопасности ;-) – janos

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