2014-12-22 5 views
5

Я хочу нажать несколько отдельных коммитов в наш основной репозиторий git. После некоторого чтения, хотя это звучит так, будто я должен переупорядочить коммиты, чтобы сделать это, потому что git будет только толкать все коммиты до определенного коммита. Во-первых, я действительно не понимаю, почему это не просто встроено в git (я новичок git). Несмотря на это, мне нужно переупорядочить коммиты, и я использую TortoiseGit. Я нашел, как добраться до меню переадресации, но я не знаю, какие варианты выбрать. Для того, чтобы попасть в меню Rebase I:Как переупорядочить Commits (rebase) с TortoiseGit

  1. правой нажал на каталог и выбрал TortoiseGit/Показать журнал
  2. просмотрены на и выбрали фиксации Я хотел, чтобы изменить порядок.
  3. Выберите «Rebase» master «на это».

Мне представлено диалоговое окно, но я не знаю, что означает любое из полей.

Во-первых, есть поле ветви, я вижу мастер и несколько параметров дистанционного управления. У меня нет филиалов. Я клонировал репозиторий и работал до сих пор от местного клона, почему существует опция ветки?

Во-вторых, есть маленькая кнопка с стрелками влево и вправо друг над другом. Для чего эта кнопка?

В-третьих, есть восходящее поле, по умолчанию выбрано SHA репозитория. Когда я нажимаю на поле, я вижу FETCH_HEAD, master и несколько параметров дистанционного управления.

Я ожидаю увидеть список коммитов, и я могу просто переместить свое сообщение вверх и вниз. Я могу увидеть список коммитов, проверив опцию Force Rebase. Это то, что мне нужно сделать? Что я заставляю, хотя я думал, что просто хотел сделать обычную старую перебазу?

Снова, я новичок git, любая помощь приветствуется.

ответ

1

Это решение проблемы. Вот что я нашел:

Определение вверх и вниз по течению: Definition of "downstream" and "upstream"

Определение FETCH_HEAD: Поиск «что FETCH_HEAD в мерзавцем» в Google.

Могу ли я использовать GIT инструменты командной строки с TortoiseGit ?: Can I use command-line Git tools and TortoiseGit simultaneously?

Как изменить порядок коммитов с мерзавцем: http://blog.dennisrobinson.name/reorder-commits-with-git/

В этом блоге он предлагает использовать:

git rebase -i HEAD~3 

я использовал

git rebase -i <SHA_of_oldest_commit> 

вместо этого. Это предоставит вам список коммитов от головы до SHA_of_oldest_commit. Чтобы переупорядочить коммиты, я просто переупорядочил строки, как я хотел, и сохранил и закрыл файл.

7

Вы на правильном пути. Force Rebase - это вариант, который вам нужно использовать. После того, как вы увидите коммиты с использованием параметра Force Rebase, выберите фиксацию и используйте кнопки «Вверх»/«Вниз», чтобы переупорядочить ваши фиксации. Нажмите кнопку «Начать перезагрузку» после того, как вы приказали их по своему усмотрению.

Что касается того, почему вам нужно выбрать Force Rebase; Rebase обычно делается, когда вы хотите, чтобы ваша текущая ветка основывалась на новой фиксации. Поскольку ваша текущая ветка уже основана на выбранном вами коммите, нет ничего, что можно было бы переустановить. В вашем случае вы просто пытаетесь изменить порядок своих коммитов, а не переустанавливать. Нет ничего плохого в использовании rebase для этого. Просто нужно явно выбрать Force Rebase.

+0

Я предполагаю, что Force Rebase позволяет использовать флаг силы для использования git rebase. Почему мне нужно принудительно переустанавливать Tortoise, но не с командной строкой git? – Samuel

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