Я немного нуб с Git, и мне было поручено очистить историю особенностей, которые я разработал недавно. У меня есть аналогичная настройка для этого человека here. Я также хочу сделать то же самое, но я хочу, чтобы выкарабкаться до конкретных коммитов. Например, если мои фиксаций являются commit1, commit2, ..., commitN, я хочу сделать так, чтобы commit1, commit2 ... раздавлены в commitX; commitX + 1, commitX + 2, ... сданы до commitY; и т.д.Сквош произвольные коммиты в удаленной ветке
Я понимаю, что это возможно с помощью команды
git rebase -i origin/*branch_name*
, но проблема в том, что когда я запускаю эту команду, я получаю это:
noop
# Rebase a112005..a112005 onto a112005 (1 command(s))
...
Насколько я понимаю, здесь должны отображаться последние и первые коммиты, но он видит только последнее коммит. Когда я пытаюсь запустить выбрать или сквош с любым другими совершить это говорит:
error: could not apply *commit hash*... *commit message*
, который, очевидно, означает, что она находит фиксацию, поскольку она знает свое сообщение, но по какой-то причине, он даже и не рассматривает его как редактируемый , Кто-нибудь знает, как я могу это исправить? Также, если кто-то рекомендует либо лучшую систему синхронизации на терминале для моей установки, либо лучший способ организовать мои вещи, я был бы признателен.
Хорошо, поэтому в этом случае я должен использовать «git rebase -i * branch_name *» без начала, редактировать то, что я хочу, а затем использовать «git push» для сохранения в удаленной ветви, правильно? – Ilman
Да: но вам придется принудительно нажать (с опцией «аренда» или без нее), чтобы заставить их принять его. Прочтите другие ответы на это, чтобы узнать, с чем проблемы. Все они вытекают из того факта, что перед тем, как вы начнете, вы должны синхронизировать свой Git-репо, и он может снова получить * синхронизацию во время работы. – torek