Как SQUA sh совершить на одной ветви - PullRequest
0 голосов
/ 24 марта 2020

У меня есть одна ветка с именем Develop. У меня есть около 20 коммитов в нем. Я хочу объединить всех их в один коммит и переименовать в «Первоначальный коммит». Таким образом, в конце у ветви будет один коммит с именем «Initial commit».

Я пробовал:

git rebase -i HEAD ~ 20

И я могу выбрать или "F" коммитов. Это я понимаю, но что мне делать после того, как я сохраню изменения?

Вся информация о сжатии предполагает, что у меня изначально была другая ветвь (master). У меня есть и будет только ветвь разработки.

1 Ответ

0 голосов
/ 24 марта 2020

Давайте возьмем это как полную проблемную область вопроса:

У меня есть одна ветвь с именем Develop. У меня есть около 20 коммитов в нем. Я хочу объединить все 1025 в один коммит и переименовать его в «Первоначальный коммит». Таким образом, в конце у ветви будет один коммит с именем «Initial commit».

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

git init
echo "one" > file
git add .
git commit -m "one"

git branch develop
git checkout develop

echo "two" >> file
git add .
git commit -m "two"
echo "three" >> file
git add .
git commit -m "three"
echo "four" >> file
git add .
git commit -m "four"
echo "five" >> file
git add .
git commit -m "five"

git log --oneline
# 2febafe (HEAD -> develop) five
# 363ca9f four
# 429b266 three
# d46e6df two
# b8bf284 (master) one
cat file
# one
# two
# three
# four
# five

Как видите, у меня есть коммиты два, три, четыре и пять при разработке. Я sh это был всего лишь один коммит. Здесь мы go:

git reset --soft b8bf284
git add .
git commit -m "unified"

Хорошо, давайте посмотрим вокруг:

git log --oneline
# 408bdd1 (HEAD -> develop) unified
# b8bf284 (master) one
cat file
# one
# two
# three
# four
# five

Да, теперь есть только один коммит на развитие после точки, где он отличается от основного, и все, что я сделал (все пять строк файла), находится в нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...