Итак, у меня есть ветка dev
, в которой в настоящее время много temp
коммитов. Возможно ли каким-то образом объединить всех этих коммитов в одну? Или воссоздайте ветвь с кодом из последнего фиксации как новый?Как «клонировать» ветку как одну фиксацию?
ответ
Вы можете сделать это с помощью rebase in git.
https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History
Вот мерзавец учебник, как перебазироваться ветвью для удаления неиспользуемых коммитов.
Да, это возможно. Если у вас есть следующая ситуация:
a--b--c (dev)
\
d--e (temp)
команда
git merge --squash branchname
приведет к
a--b--c--f
где f
содержит изменения, сделанные в d
и e
git rebase -i <after-this-commit>
Недавно я столкнулся с той же проблемой, у меня было 41 фиксаций по моей просьбе тянуть, см here. Я коснусь только того, что я реализовал.
Например, если у вас есть 3 фиксации, вы можете сквоить их и сделать с помощью интерактивной перестановки. Ниже команды:
$ git rebase -i HEAD~n
Например, вы хотите, чтобы раздавить 3 фиксаций:
$ git rebase -i HEAD~3
Теперь вы видите интерактивный интерфейс перебазироваться, где вы можете написать перефразировать/выбрать на первом фиксации и сквош на остальные из них. Посмотрите это видео для лучшего понимания.
Это легко, не займет больше времени. Я работал над этим.
Увидеть этот пост Squash my last X commits together using Git
Два пути
1.Это создаст новый филиал -
Шаг 1: создать новую ветвь, из которого вы создали dev
филиал
git checkout master
git branch -d new_branch
Шаг 2: выезд в этой отрасли
git checkout new_branch
шаг 3: merge dev с флагом -squash
git merge --squash dev
шаг 4: add
commit
и push
git add .
git commit -m'commit message'
git push origin new_branch
2. Один совершить в тот же филиал (хитрый способ)
n
это число фиксаций вы хотите редактировать
$ git rebase -i HEAD~n
здесь вы можете редактировать коммиты и сдавливать их одним фиксатором
- 1. Git: Как клонировать первую фиксацию?
- 2. Как «переустановить» одну фиксацию?
- 3. Как клонировать одну ветвь в git?
- 4. клонировать ветку из GIT
- 5. Как клонировать дочернюю ветку github с HTTPS?
- 6. как клонировать архивированную ветку git repo?
- 7. Как клонировать ветку с git-p4?
- 8. Mercurial: клонировать только ветку репозитория
- 9. Клонировать только одну ветвь
- 10. Как клонировать одну базу данных в другую?
- 11. Как клонировать одну директорию всего репозитория Git?
- 12. Освободите ветку джита, сохраняя фиксацию после слияния
- 13. git - переместить ветку «тег» в другую фиксацию?
- 14. Git: Сделайте одну ветку точно как другой
- 15. как удаленный добавить одну ветку из репозитория
- 16. Как сделать одну ветку на основе другой?
- 17. Как сделать фиксацию и тянуть запрос на ветку в Github?
- 18. Как вернуть фиксацию и создать новую ветку из этих изменений?
- 19. Как отделить фиксацию в ветку после выполнения нескольких других коммитов?
- 20. Как нажимать фиксацию с тегом на удаленную ветку в git?
- 21. Клонировать только конкретную фиксацию с использованием git
- 22. Как получить названную ветку?
- 23. Как скопировать последнюю фиксацию как новую фиксацию в Git?
- 24. Хотите сделать предыдущую фиксацию в отдельную ветку
- 25. Способ вернуть целую ветвь в одну фиксацию
- 26. Netbeans - Клонировать конкретную ветку репозитория bitbucket
- 27. Git: Объединить только одну фиксацию
- 28. Как клонировать весь репозиторий в ветку, отличную от мастера?
- 29. Как я могу переместить ветку (или указанную фиксацию) в другую ветку?
- 30. Как исправить фиксацию неправильной ветви