У меня есть 2 ветки:
- разработка;
- новый (от развитие);
и 40 единиц в отрасли новый товар.
мне нужно просто установить все изменения (последняя новой особенностью состояния) в новой отрасли новой особенностью сингл.
Я не могу сделать rebase, потому что развитие ветка теперь слишком новая, и слишком сложно сделать сброс всех 40 коммитов.GIT: Последнее состояние ветвления к новой ветке
ответ
Это то, что я думаю, что вы просили, хотя я не совсем понятно, на что вы надеетесь достичь:
$ git checkout -b new-feature-single development
# make a new branch, starting from development/HEAD, with no new commits
$ git merge --squash new-feature
# apply all the changes from new-feature
$ git commit
# create a single commit with all those changes
Обратите внимание, что слияние это с new-feature
позже не будет вести себя хорошо, потому что git видит, что вы делаете изменения дважды независимо и не можете сказать, что они связаны.
Да, вот и все! Я подозревал, что это команда -squash, но я не мог понять, как ее использовать ... В моем случае ветка 'new-feature' не является nassassary. Мне просто нужны были мои изменения («независимые» изменения еще лучше), как было описано в вопросе. Так что ваш ответ абсолютно прав! Благодаря! –
- Создайте еще одну ветку нового-единственного.
- Добавить удаленный восходящий поток в новой функции: от одного до нового: git remote add new-feature.
- Оформить заказ на новую единицу.
- Напряжение изменение от новой-функции для нового признака-сингла: мерзавца тянуть новую-функции
Совет: Список всех происхождения и другое удаленное URL, подключен к отрасли: мерзавец дистанционного -v
ли это делай что хочешь?
git checkout -b new-feature-single new-feature
Это создает новую ветвь new-feature-single
, которая указывает на то передай, что new-feature
в данный момент делает. Это похоже на то, что вы хотите сделать, но если это не так, возможно, необходимы некоторые дополнительные разъяснения ...
Один из ваших комментариев, похоже, указывает, что после этого вы хотите преобразовать new-feature-single
в single-commit совершает те же изменения, что и последовательность фиксаций в new-feature
. После этого вы можете сделать это, выполнив git rebase -i development..HEAD
и изменив все действия, кроме первой строки, на «squash» (или просто «s»). Если вы сделали вышеуказанный шаг, то это не коснется вашей ветки new-feature
, но оставит new-feature-single
с одной фиксацией на нем, разветвленной от той же исходной точки и содержащей кумулятивные изменения последовательности фиксации new-feature
.
Создает новую ветку, подобную старой, с теми же 40 коммитами. Мне нужно иметь новую ветку с одной фиксацией, которая будет иметь все изменения. –
@Chaki_Black отредактирован, чтобы включить описание того, как сквоить новую ветку ... – twalberg
Прежде всего, найдите общего предка для ваших ветвей «развития» и «новой функции». Из вашего описания, это может быть очень хорошо коммит «развитие» в настоящее время указывает, но есть удобная команда, чтобы узнать наверняка называется merge-base:
git merge-base new-feature development
Давайте предположим, что для обсуждения, что вышеуказанная команда выплевывает "abc123". Далее создайте новую ветку с именем «новой особенностью-синглом» основаны на фиксацию «abc123»:
git checkout -b new-feature-single abc123
Теперь вы должны иметь «новую особенность-сингл» проверил, и это новые точки ветвления в тот же родитель, с которого начиналась ваша ветка «новая функция».
Наконец, сливается в «новую-функцию-сингла» коммиты из «новой-функции», и давят их всех до единой фиксации:
git merge --squash new-feature
«Новая-функция-сингл «ветвь теперь имеет все изменения от« новой функции », объединенной в единую фиксацию.
- 1. Изменения git stash относятся к новой ветке?
- 2. Возвращение к ветке git
- 3. Git: stashing вместо ветвления
- 4. Создание новой ветки на ветке в Git
- 5. Очистка публичной ветки GIT в новой ветке
- 6. GIT ветвления вопрос
- 7. git перемещает неуправляемые изменения от мастера к новой ветке
- 8. Как Git тянуть к новой ветке, не затрагивая текущую ветку?
- 9. git flow ветвящаяся модель ветвления
- 10. Git добавление к родительской ветке
- 11. Неправильно применяется git stash к другой ветке
- 12. GIT - Перезапись кода ядра на отдельной ветке
- 13. нахождение пути ветвления git
- 14. Перемещение переходит к новой ветке до нажатия
- 15. Git, показывающий предыдущую ветвь, завершается в новой ветке
- 16. Git workflow: Как объединить фиксации, сделанные только на новой ветке
- 17. Фиксировать на новой ветке не визуализируется
- 18. git diff текущей версии с фиксацией ветвления
- 19. рельсы: таблица уже существует на новой ветке git
- 20. Не могу потянуть в новой ветке
- 21. Как скопировать текущие изменения и применить их к новой ветке
- 22. Вернитесь к исходной ветке после git stash
- 23. , обязующийся к той же ветке с git
- 24. git запрещает пользователю доступ к ведущей ветке
- 25. Просмотр не подключенного к ветке на git
- 26. Git: применить старую версию файла к ветке
- 27. Изменения Git не привязаны к локальной ветке
- 28. Git: начните сначала в новой ветке, удаляйте фиксации из истории
- 29. Повторное включение контроля GIT в скопированном проекте, в новой ветке
- 30. Git rebase master на новой ветке дает конфликты слияния
Как будет «новая функция-единственная» отличаться от «новой функции», когда вы закончите? Будет ли оно идентичным (пока вы не начнете выполнять обе ветви) или каким-то другим? – Useless
'new-feature-single' просто нуждается в изменениях, таких как' new-feature', но просто должен быть с одним коммитом, который будет иметь все изменения в одном –
OK, поэтому вы хотите выкачать все эти коммиты в одну фиксацию - должен ли он иметь того же предка, что и «новая функция»? – Useless