-
1. Начало
- 1.1 За Version Control системите
- 1.2 Кратка история на Git
- 1.3 Какво е Git
- 1.4 Конзолата на Git
- 1.5 Инсталиране на Git
- 1.6 Първоначална настройка на Git
- 1.7 Помощна информация в Git
- 1.8 Обобщение
-
2. Основи на Git
-
3. Клонове в Git
-
4. GitHub
-
5. Git инструменти
- 5.1 Избор на къмити
- 5.2 Интерактивно индексиране
- 5.3 Stashing и Cleaning
- 5.4 Подписване на вашата работа
- 5.5 Търсене
- 5.6 Манипулация на историята
- 5.7 Мистерията на командата Reset
- 5.8 Сливане за напреднали
- 5.9 Rerere
- 5.10 Дебъгване с Git
- 5.11 Подмодули
- 5.12 Пакети в Git (Bundling)
- 5.13 Заместване
- 5.14 Credential Storage система
- 5.15 Обобщение
-
6. Настройване на Git
- 6.1 Git конфигурации
- 6.2 Git атрибути
- 6.3 Git Hooks
- 6.4 Примерна Git-Enforced политика
- 6.5 Обобщение
-
7. Git и други системи
- 7.1 Git като клиент
- 7.2 Миграция към Git
- 7.3 Обобщение
-
8. Git на ниско ниво
- 8.1 Plumbing и Porcelain команди
- 8.2 Git обекти
- 8.3 Git референции
- 8.4 Packfiles
- 8.5 Refspec спецификации
- 8.6 Транспортни протоколи
- 8.7 Поддръжка и възстановяване на данни
- 8.8 Environment променливи
- 8.9 Обобщение
-
9. Приложение A: Git в други среди
-
10. Приложение B: Вграждане на Git в приложения
- 10.1 Git от команден ред
- 10.2 Libgit2
- 10.3 JGit
- 10.4 go-git
- 10.5 Dulwich
-
A1. Приложение C: Git команди
- A1.1 Настройки и конфигурация
- A1.2 Издърпване и създаване на проекти
- A1.3 Snapshotting
- A1.4 Клонове и сливане
- A1.5 Споделяне и обновяване на проекти
- A1.6 Инспекция и сравнение
- A1.7 Дебъгване
- A1.8 Patching
- A1.9 Email команди
- A1.10 Външни системи
- A1.11 Административни команди
- A1.12 Plumbing команди
A1.8 Приложение C: Git команди - Patching
Patching
Има няколко команди в Git обединени около концепцията да възприемаме къмитите от гледна точка на това какви промени въвеждат, тоест като серия от пачове. Тези команди помагат да управлявате клоновете си в подобен маниер.
git cherry-pick
git cherry-pick
взема промяната въведена в единичен къмит и се опитва да я въведе наново като нов къмит в текущия клон.
Това може да е полезно в случай, че искате да вземете един или два къмита индивидуално от даден клон вместо да го слеете целия, което взема всичките му промени.
Cherry picking процесът е обяснен и демонстриран в Rebasing и Cherry-Picking работни процеси.
git rebase
Командата git rebase
в общи линии е автоматична версия на cherry-pick
.
Тя определя серия от къмити и след това ги cherry-pick-ва един по един в същия ред на друго място.
Пребазирането е разгледано в детайли в [_rebasing], където освен това обръщаме внимание на възможните проблеми, които възникват в резултат на пребазиране на вече публикувани клонове.
Използваме я също в примера за разделяне на историята в две отделни хранилища в Заместване с помощта на флага --onto
.
Разглеждаме и ситуации, при които може да се окажем в merge конфликт по време на пребазиране в Rerere.
Използваме я в интерактивен скриптов режим с опцията -i
в Смяна на повече къмит съобщения.
git revert
Командата git revert
по същество е обратна на git cherry-pick
.
Тя създава нов къмит, който прилага точно обратното на промените въведени в посочения къмит и реално ги отменя.
Използваме я във Връщане на къмит за да отменим merge къмит.