Как переупорядочить совершение в Git не интерактивно Какие неинтерактивные команды git достигают изменения от Before to After? До: A---B---C---D После: A---C'---B'---D' Ответ 1 В вашем случае вы можете перезагрузить интерактивный интерфейс: git rebase -i HEAD~4 Затем вы можете просто изменить порядок своих выборов Например, добавим еще три файла в нашу ветку: git add A git commit -m "A" git add B git commit -m "B" git add C git commit -m "C" Ваш короткий заголовок будет: $ git shortlog (3): A B C Если вы хотите изменить порядок B с помощью C: $ git rebase -i HEAD~2 pick 1f9133d B pick 33f41be C Вы просто переупорядочиваете их как: pick 33f41be C pick 1f9133d B После того, как вы закончите писать, см. краткое сообщение: $ git shortlog (3): A C B Вы можете сделать то же самое со всеми коммитами путем переупорядочения. Это похоже на то, что вы видите, что вы получаете, что довольно круто:) Ответ 2 Попробуйте следующее: git reset --hard A git cherry-pick C git cherry-pick B git cherry-pick D Возможно, существует способ с git rebase, но я этого не понимал. Ответ 3 См. Как запустить git rebase -interactive в неинтерактивном режиме? для использования git rebase -interactive в неинтерактивном режиме. Затем, если у вас есть формальные критерии для переупорядочения, вы можете script, что, например, Действительно сгладить слияние git, чтобы переупорядочить фиксацию оригинальная дата фиксации.
Ответ 1 В вашем случае вы можете перезагрузить интерактивный интерфейс: git rebase -i HEAD~4 Затем вы можете просто изменить порядок своих выборов Например, добавим еще три файла в нашу ветку: git add A git commit -m "A" git add B git commit -m "B" git add C git commit -m "C" Ваш короткий заголовок будет: $ git shortlog (3): A B C Если вы хотите изменить порядок B с помощью C: $ git rebase -i HEAD~2 pick 1f9133d B pick 33f41be C Вы просто переупорядочиваете их как: pick 33f41be C pick 1f9133d B После того, как вы закончите писать, см. краткое сообщение: $ git shortlog (3): A C B Вы можете сделать то же самое со всеми коммитами путем переупорядочения. Это похоже на то, что вы видите, что вы получаете, что довольно круто:)
Ответ 2 Попробуйте следующее: git reset --hard A git cherry-pick C git cherry-pick B git cherry-pick D Возможно, существует способ с git rebase, но я этого не понимал.
Ответ 3 См. Как запустить git rebase -interactive в неинтерактивном режиме? для использования git rebase -interactive в неинтерактивном режиме. Затем, если у вас есть формальные критерии для переупорядочения, вы можете script, что, например, Действительно сгладить слияние git, чтобы переупорядочить фиксацию оригинальная дата фиксации.