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
.
Ответы
Ответ 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/