История изменений
Исправление Fizzika, (текущая версия) :
Покажу, как сделать сквош коммитов через интерактивный rebase.
Смотри, rebase - это такая интерактивная перезапись истории. Ты выбираешь «базу», относительно которой будешь заново применять свои коммиты - в твоём случае это ветка «develop».
Для начала, закоммить все свои данные, команда git status
должна тебе сообщить, что тебе нечего коммитить.
Затем обнови ветку develop, чтобы оперировать с последней её версией: git fetch develop
Данная команда обновит remote ветку develop - то есть твой origin/develop. Твоя локальная ветка develop останется без измнений.
Теперь можно приступать к интерактивному rebase: git rebase -i origin/develop
Тут откроется твой текстовый редактор, который покажет все коммиты, которые ты сделал.
Пример:
pick c6a8c39d Первый коммит
pick 5de0297e Второй коммит
pick 929992e0 Третий коммит
...
pick 5645224a Самый новый коммит
# Rebase d950e1d9..5645224a onto d950e1d9 (4 commands)
Теперь ты можешь изменять каждый коммит. Первое слово в строке - сейчас оно «pick», это команда. Внизу в комментах написано, какие команды есть и что они значат. Pick, к примеру, означает взять этот коммит и применить его.
Нас интересует команда squash, которая сливает коммит с предыдущим. Поэтому мы ставим squash на всех коммитах кроме первого:
pick c6a8c39d Первый коммит
squash 5de0297e Второй коммит
squash 929992e0 Третий коммит
...
squash 5645224a Самый новый коммит
# Rebase d950e1d9..5645224a onto d950e1d9 (4 commands)
Потом, если не будет конфликтов (А если они будут, то разрешаешь их, удаляешь *.orig файлы, добавляешь всё в индекс через git add .
, и делаешь git rebase --continue
), откроется окошко с сообщением единственного коммита, который заместит все твои.
Там по-умолчанию будет комбинация из сообщений всех коммитов, поэтому удали все сообщения что там будут, и задай нормальное:
# This is a combination of 4 commits.
My squashed commit
# Please enter the commit message for your changes. Lines starting
Поздравляю, вы успешно ребейзнулись!
Теперь, после проверки, можно опубликовать свои изменения. Если уже пушил раньше, то сейчас нужно форспушнуть, так как мы делали перезапись истории: git push --force
Исправление Fizzika, :
Покажу, как сделать сквош коммитов через интерактивный rebase.
Смотри, rebase - это такая интерактивная перезапись истории. Ты выбираешь «базу», относительно которой будешь заново применять свои коммиты - в твоём случае это ветка «develop».
Для начала, закоммить все свои данные, команда git status
должна тебе сообщить, что тебе нечего коммитить.
Затем обнови ветку develop, чтобы оперировать с последней её версией: git fetch develop
Данная команда обновит remote ветку develop - то есть твой origin/develop. Твоя локальная ветка develop останется без измнений.
Теперь можно приступать к интерактивному rebase: git rebase -i origin/develop
Тут откроется твой текстовый редактор, который покажет все коммиты, которые ты сделал.
Пример:
pick c6a8c39d Первый коммит
pick 5de0297e Второй коммит
pick 929992e0 Третий коммит
...
pick 5645224a Самый новый коммит
# Rebase d950e1d9..5645224a onto d950e1d9 (4 commands)
Теперь ты можешь изменять каждый коммит. Первое слово в строке - сейчас оно «pick», это команда. Внизу в комментах написано, какие команды есть и что они значат. Pick, к примеру, означает взять этот коммит и применить его.
Нас интересует команда squash, которая сливает коммит с предыдущим. Поэтому мы ставим squash на всех коммитах кроме первого:
pick c6a8c39d Первый коммит
squash 5de0297e Второй коммит
squash 929992e0 Третий коммит
...
squash 5645224a Самый новый коммит
# Rebase d950e1d9..5645224a onto d950e1d9 (4 commands)
Потом, если не будет конфликтов (А если они будут, то разрешаешь их, удаляешь *.orig файлы, добавляешь всё в индекс через git add .
, и делаешь git rebase --continue
), откроется окошко с сообщением единственного коммита, который заместит все твои.
Там по-умолчанию будет комбинация из сообщений всех коммитов, поэтому удали все сообщения что там будут, и задай нормальное:
# This is a combination of 4 commits.
My squashed commit
# Please enter the commit message for your changes. Lines starting
Поздравляю, вы успешно ребейзнулись!
Исходная версия Fizzika, :
Покажу, как сделать сквош коммитов через интерактивный rebase.
Смотри, rebase - это такая интерактивная перезапись истории. Ты выбираешь «базу», относительно которой будешь заново применять свои коммиты - в твоём случае это ветка «develop».
Для начала, закоммить все свои данные, команда
$ git status
Должна тебе сообщить, что тебе нечего коммитить.
Затем обнови ветку develop, чтобы оперировать с последней её версией:
$ git fetch develop
Данная команда обновит remote ветку develop - то есть твой origin/develop. Твоя локальная ветка develop останется без измнений.
Теперь можно приступать к интерактивному rebase.
$ git rebase -i origin/develop
Тут откроется твой текстовый редактор, который покажет все коммиты, которые ты сделал.
Пример:
pick c6a8c39d Первый коммит
pick 5de0297e Второй коммит
pick 929992e0 Третий коммит
...
pick 5645224a Самый новый коммит
# Rebase d950e1d9..5645224a onto d950e1d9 (4 commands)
Теперь ты можешь изменять каждый коммит. Первое слово в строке - сейчас оно «pick», это команда. Внизу в комментах написано, какие команды есть и что они значат. Pick, к примеру, означает взять этот коммит и применить его.
Нас интересует команда squash, которая сливает коммит с предыдущим. Поэтому мы ставим squash на всех коммитах кроме первого:
pick c6a8c39d Первый коммит
squash 5de0297e Второй коммит
squash 929992e0 Третий коммит
...
squash 5645224a Самый новый коммит
# Rebase d950e1d9..5645224a onto d950e1d9 (4 commands)
Потом, если не будет конфликтов (А если они будут, то разрешаешь их, удаляешь *.orig файлы, добавляешь всё в индекс через git add .
, и делаешь git rebase --continue
), откроется окошко с сообщением единственного коммита, который заместит все твои.
Там по-умолчанию будет комбинация из сообщений всех коммитов, поэтому удали все сообщения что там будут, и задай нормальное:
# This is a combination of 4 commits.
My squashed commit
# Please enter the commit message for your changes. Lines starting
Поздравляю, вы успешно ребейзнулись!