62 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Git Merge
 | ||
| localeTitle: Git Merge
 | ||
| ---
 | ||
| ## Git Merge
 | ||
| 
 | ||
| Команда `git merge` объединяет любые изменения, внесенные в базу кода из любой отдельной ветки, в вашу текущую ветку.
 | ||
| 
 | ||
| Синтаксис команды следующий:
 | ||
| 
 | ||
| ```shell
 | ||
| git merge BRANCH-NAME 
 | ||
| ```
 | ||
| 
 | ||
| Например, если вы сейчас работаете в ветке с именем `dev` и хотели бы объединить любые новые изменения, которые были сделаны в ветке с именем `new-features`, вам нужно выполнить следующую команду:
 | ||
| 
 | ||
| ```shell
 | ||
| git merge new-features 
 | ||
| ```
 | ||
| 
 | ||
| **Обратите внимание:** если в вашей текущей ветке есть какие-либо незафиксированные изменения, Git не позволит вам сделать слияния, пока не будут зафиксированы все изменения в вашей текущей ветке. Чтобы решить эту задачу, вы можете:
 | ||
| 
 | ||
| *   Создать новую ветку и зафиксировать изменения
 | ||
| 
 | ||
| ```shell
 | ||
| git checkout -b new-branch-name 
 | ||
|  git add . 
 | ||
|  git commit -m "<your commit message>" 
 | ||
| ```
 | ||
| 
 | ||
| *   Скрыть изменения
 | ||
| 
 | ||
| ```shell
 | ||
| git stash               # add them to the stash 
 | ||
|  git merge new-features  # do your merge 
 | ||
|  git stash pop           # get the changes back into your working tree 
 | ||
| ```
 | ||
| 
 | ||
| *   Отменить все изменения
 | ||
| 
 | ||
| ```shell
 | ||
| git reset --hard        # removes all pending changes 
 | ||
| ```
 | ||
| 
 | ||
| ## Конфликты во время слияния
 | ||
| 
 | ||
| Конфликты во время слияния - это когда вы совершаете фиксации на отдельных ветвях, которые изменяют одну и ту же строку конфликтующими способами. Поэтому Git не будет знать, какую версию файла сохранить
 | ||
| 
 | ||
| в результате появляется сообщение об ошибке:
 | ||
| 
 | ||
| CONFLICT (content): Конфликт в файле resumé.txt Ошибка автоматического слияния; исправьте конфликты и затем зафиксируйте результат.
 | ||
| 
 | ||
| В редакторе кода Git использует маркировки для указания HEAD (основной) версии файла и другой версии файла.
 | ||
| 
 | ||
| `<<<<<<< HEAD`
 | ||
| 
 | ||
| `>>>>>>> OTHER`
 | ||
| 
 | ||
| В редакторе кода удалите/обновите файлы, чтобы разрешить конфликт, и удалите специальные маркировки, включая имена HEAD и OTHER, сохраните файл, затем добавьте и зафиксируйте свои изменения.
 | ||
| 
 | ||
| Дополнительные сведения о команде `git merge` и всех доступных параметрах см. в [документации Git](https://git-scm.com/docs/git-merge) .
 |