Подтвердить что ты не робот

Git: Как переупорядочить и сквош совершает переход из ветки в мастер?

Я пытаюсь переустановить и вырезать все мои коммиты из текущей ветки в master. Вот что я пытаюсь сделать:

git checkout -b new-feature

сделать пару коммитов, после этого я пытался:

git rebase -i master

в этом случае фиксация останется в new-feature ветке

git checkout master
git rebase -i new-feature

Он дает мне и редактирует окно с сообщением noop.

Я знаю о команде:

git merge --squash new-feature

Но я сейчас изучаю команду rebase.

4b9b3361

Ответ 1

При перезагрузке Git не будет перемещаться в другую ветку. Он будет перемещать ветвь, включая все ее фиксации. Если вы хотите получить коммиты в master после перезагрузки поверх нее, используйте git merge <branch tip or commit of branch> для быстрой пересылки главной ветки на эту фиксацию.

Ответ 2

Перейдите к шагам.

1 - Мы создаем новую ветвь функции

git checkout -b new-feature

2 - Теперь вы можете добавлять/удалять и обновлять все, что хотите, на своей новой ветке

git add <new-file>
git commit -am "Added new file"
git rm <file-name>
git commit -am "Removed a file"
cat "add more stuff to file" >> <new-file>
git commit -am "Updated files"

3 - Далее, выберите и сквош любой коммит в одно приятное сообщение о фиксации

git rebase -i master

Главное, что вам нужно запомнить здесь, - это изменить текст, который говорит "выбрать" для "сквоша" для всех коммитов после первого коммита. Это приведет к сквоту всех коммитов до вашей основной ветки.

4 - Выберите главную ветвь

git checkout master

5 - Переместите HEAD и ведущую ветвь туда, где есть новая функция:

git rebase new-feature

Вы можете попробовать все команды в этом визуальном инструменте: http://pcottle.github.io/learnGitBranching/