5.2 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	title, localeTitle
| title | localeTitle | 
|---|---|
| Git Rebase | Go Rebase | 
Git Rebase
Сброс ветви в Git - это способ переместить всю ветвь в другую точку дерева. Простейшим примером является перемещение ветви дальше вверх по дереву. Скажем, у нас есть ветвь, которая расходится с главной ветвью в точке А:
        /o-----o---o--o-----o--------- branch 
 --oo--A--o---o---o---o----o--ooo--- master 
Когда вы переустанавливаете, вы можете переместить его так:
                                   /o-----o---o--o-----o------ branch 
 --oo--A--o---o---o---o----o--ooo master 
Чтобы переустановить, убедитесь, что у вас есть все коммиты, которые вы хотите в rebase в основной ветке. Проверьте ветку, которую вы хотите переустановить, и введите git rebase master (где master - это ветка, которую вы хотите переустановить).
Также можно переупаковать другую ветку, так что, например, ветвь, основанная на другой ветке (давайте назовем ее функцией), будет переустановлена на master:
                            /---oo branch 
           /---oooo---o--o------ feature 
 ----o--ooA----o---o--ooo--o--o- master 
После того, как git rebase master branch или git rebase master когда вы проверили ветку, вы получите:
           /---oooo---o--o------ feature 
 ----o--ooA----o---o--ooo--o--o- master 
                                  \---oo branch 
Git rebase интерактивный в консоли
Чтобы использовать git rebase в консоли со списком коммитов, вы можете выбрать, отредактировать или удалить в rebase:
- Введите git rebase -i HEAD~5при этом последним номером будет любое количество фиксаций из последних обратных ссылок, которые вы хотите просмотреть.
- В vim нажмите esc, затемiчтобы начать редактирование теста.
- С левой стороны вы можете переписать pickодной из приведенных ниже команд. Если вы хотите раздавить коммит в предыдущем и отменить сообщение о фиксации, введитеfв местоpickфиксации.
pick 452b159 <message for this commit> 
 pick 7fd4192 <message for this commit> 
 pick c1af3e5 <message for this commit> 
 pick 5f5e8d3 <message for this commit> 
 pick 5186a9f <message for this commit> 
 
 # Rebase 0617e63..5186a9f onto 0617e63 (30 commands) 
 # 
 # Commands: 
 # p, pick = use commit 
 # r, reword = use commit, but edit the commit message 
 # e, edit = use commit, but stop for amending 
 # s, squash = use commit, but meld into previous commit 
 # f, fixup = like "squash", but discard this commit's log message 
 # x, exec = run command (the rest of the line) using shell 
 # d, drop = remove commit 
 # 
 # These lines can be re-ordered; they are executed from top to bottom. 
 # 
 # If you remove a line here THAT COMMIT WILL BE LOST. 
 # 
 # However, if you remove everything, the rebase will be aborted. 
 # 
 # Note that empty commits are commented out 
- Введите escа затем:wqчтобы сохранить и выйти.
- Если он успешно восстанавливается, вам нужно принудительно нажать свои изменения с помощью git push -fчтобы добавить измененную версию в репозиторий github.
- Если существует конфликт слиянием, существует ряд способов исправить это, в том числе следующие рекомендации в этом руководстве . Один из способов - открыть файлы в текстовом редакторе и удалить части кода, который вам не нужен. Затем используйте git add <file name>за которым следуетgit rebase --continue. Вы можете пропустить конфликтное сообщение, введяgit rebase --skip, выйти из gitgit rebase --skip, введяgit rebase --abortв консоли.