Предположим, что у меня есть 4 ветки: part1, part2, part3 и master. Часть 1 имеет 1 фиксацию (первая фиксация), часть 2 имеет 2 фиксации (первая фиксация, вторая фиксация), а часть 3 имеет 3 фиксации (первый, второй и третий). Я хочу внести некоторые изменения в первый коммит в части 1, а также отразить эти изменения в других фиксациях других филиалов. Каков самый быстрый способ сделать это?Внесение изменений в старый фиксатор
ответ
К сожалению, я не могу придумать ни одной серебряной пули, которая позволила бы вам внести изменения в первую фиксацию в ветке part1
и автоматически обновить ее в остальных трех ветвях. Основная причина этого заключается в том, что первая фиксация фактически различна во всех 4 ваших филиалах. Вы можете убедиться в этом, проверив хэш SHA-1 первой фиксации в этих ветвях.
Если вы хотите переписать историю первого коммита, тогда вы можете сделать интерактивную перезагрузку. Вот пример того, как сделать это для part3
отрасли:
git rebase -i HEAD~3
Это должно побудить вас с экрана, который выглядит следующим образом:
pick dkj398u third commit message
pick l2mnx73 second commit message
edit 36e74bn first commit message
Заметьте, что я изменил действие на первая фиксация - edit
. Когда вы сохраните этот файл и покинете редактор, Git запустит rebase, но остановится при первом фиксации. Это даст вам возможность внести необходимые изменения. После этого, вы можете совершить эти изменения и продолжить перебазироваться с помощью: Вы можете повторить эту процедуру для остальных ветвей
git rebase --continue
. Обратите внимание, что если первая фиксация была последней для всех ветвей, то вы могли бы использовать git commit --amend
для всех, чтобы изменить фиксацию с помощью переустановки.
Вы можете использовать мерзавец перебазироваться, например, если вы хотите изменить обратно совершить baa643cd, запустите
$ git rebase --interactive baa643cd
В редакторе по умолчанию, изменить «забрать» на «редактировать» в которую вы хотите изменить. Внесите необходимые изменения, а затем зафиксировать их с тем же сообщением вы были раньше:
$ git commit --all --amend --no-edit
изменить фиксации, и после этого
$ git rebase --continue
вернуться к предыдущей главы фиксации.
- 1. Отключить старый фиксатор после нажатия?
- 2. Внесение изменений в php.ini
- 3. Внесение изменений в web.xml
- 4. Внесение изменений в liveweaver
- 5. Внесение изменений на сайт
- 6. Повторное внесение изменений?
- 7. Внесение изменений в внешний процесс
- 8. Внесение личных изменений в Three20
- 9. внесение изменений в файл XML
- 10. Внесение изменений в данные массива
- 11. Внесение изменений в текстовое поле
- 12. Внесение изменений в таблицы. lightswitch
- 13. Git: Отменить старый фиксатор на одном файле
- 14. сбросить git-репо на старый фиксатор?
- 15. Проверьте старый фиксатор - две ветви - инструмент репо
- 16. GIT-SVN: dcommit содержит слишком старый фиксатор
- 17. Измените старый фиксатор и удалите некоторые изменения.
- 18. Сделать старый фиксатор + изменяет новый мастер
- 19. Внесение изменений в mysql2_adapter.rb в activerecord gem
- 20. Внесение изменений в новую ветку в Mercurial
- 21. Внесение изменений в гвардию Guard на Github
- 22. Android: внесение изменений в родительский вид кнопки
- 23. Внесение изменений в исходный файл csv
- 24. Внесение изменений в справочную документацию Spring Framework?
- 25. Git: внесение изменений в мастер только
- 26. внесение изменений в предварительно заполненном текстовое поле
- 27. Внесение изменений в защищенный рабочий лист
- 28. Внесение изменений в пользовательские входы Sinatra
- 29. Внесение изменений в зависимости от локальных габаритов
- 30. Внесение изменений легко в базу данных доступа
Пожалуйста, ознакомьтесь с приведенными ответами. –