Merge branch 'release-1.3.1'
This commit is contained in:
commit
1b5c4a3c15
388
git-tutorial.lyx
388
git-tutorial.lyx
|
@ -1,5 +1,5 @@
|
||||||
#LyX 2.0 created this file. For more info see http://www.lyx.org/
|
#LyX 2.1 created this file. For more info see http://www.lyx.org/
|
||||||
\lyxformat 413
|
\lyxformat 474
|
||||||
\begin_document
|
\begin_document
|
||||||
\begin_header
|
\begin_header
|
||||||
\textclass article
|
\textclass article
|
||||||
|
@ -36,13 +36,13 @@ foottoend
|
||||||
\font_roman default
|
\font_roman default
|
||||||
\font_sans default
|
\font_sans default
|
||||||
\font_typewriter default
|
\font_typewriter default
|
||||||
|
\font_math auto
|
||||||
\font_default_family default
|
\font_default_family default
|
||||||
\use_non_tex_fonts false
|
\use_non_tex_fonts false
|
||||||
\font_sc false
|
\font_sc false
|
||||||
\font_osf false
|
\font_osf false
|
||||||
\font_sf_scale 100
|
\font_sf_scale 100
|
||||||
\font_tt_scale 100
|
\font_tt_scale 100
|
||||||
|
|
||||||
\graphics default
|
\graphics default
|
||||||
\default_output_format default
|
\default_output_format default
|
||||||
\output_sync 0
|
\output_sync 0
|
||||||
|
@ -66,15 +66,24 @@ foottoend
|
||||||
\pdf_pdfusetitle true
|
\pdf_pdfusetitle true
|
||||||
\papersize default
|
\papersize default
|
||||||
\use_geometry true
|
\use_geometry true
|
||||||
\use_amsmath 1
|
\use_package amsmath 1
|
||||||
\use_esint 1
|
\use_package amssymb 1
|
||||||
\use_mhchem 1
|
\use_package cancel 1
|
||||||
\use_mathdots 1
|
\use_package esint 1
|
||||||
|
\use_package mathdots 1
|
||||||
|
\use_package mathtools 1
|
||||||
|
\use_package mhchem 1
|
||||||
|
\use_package stackrel 1
|
||||||
|
\use_package stmaryrd 1
|
||||||
|
\use_package undertilde 1
|
||||||
\cite_engine basic
|
\cite_engine basic
|
||||||
|
\cite_engine_type default
|
||||||
|
\biblio_style plain
|
||||||
\use_bibtopic false
|
\use_bibtopic false
|
||||||
\use_indices false
|
\use_indices false
|
||||||
\paperorientation portrait
|
\paperorientation portrait
|
||||||
\suppress_date false
|
\suppress_date false
|
||||||
|
\justification true
|
||||||
\use_refstyle 1
|
\use_refstyle 1
|
||||||
\index Index
|
\index Index
|
||||||
\shortcut idx
|
\shortcut idx
|
||||||
|
@ -118,7 +127,7 @@ February 27, 2013
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Date
|
\begin_layout Date
|
||||||
Версия 1.3.0
|
Версия 1.3.1
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -264,7 +273,7 @@ lease/
|
||||||
.
|
.
|
||||||
Полученный приватный ключ id_rsa следует хранить в безопасном от чужих
|
Полученный приватный ключ id_rsa следует хранить в безопасном от чужих
|
||||||
глаз месте (в случае получения доступа к нему 3-их лиц следует сгенерировать
|
глаз месте (в случае получения доступа к нему 3-их лиц следует сгенерировать
|
||||||
новый, а старый - удалить с Git-сервера).
|
новый, а старый публичный ключ (.pub) - удалить с Git-сервера).
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -381,6 +390,13 @@ Initial commit.
|
||||||
.
|
.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Индексом в Git называется промежуточное хранилище изменений, попадающих
|
Индексом в Git называется промежуточное хранилище изменений, попадающих
|
||||||
в ближайший коммит.
|
в ближайший коммит.
|
||||||
|
@ -458,6 +474,13 @@ begin_layout Subsubsection
|
||||||
Stage this hunk [y,n,q,a,d,/,e,?]? y
|
Stage this hunk [y,n,q,a,d,/,e,?]? y
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Параметр -m у команды commit указывает на то, что следующим аргументом команды
|
Параметр -m у команды commit указывает на то, что следующим аргументом команды
|
||||||
следует описание коммита, что удобно, когда нужно коммит сделать быстро.
|
следует описание коммита, что удобно, когда нужно коммит сделать быстро.
|
||||||
|
@ -616,6 +639,13 @@ $ git status -s # использовать сокращённую запись
|
||||||
?? git-tutorial.pdf
|
?? git-tutorial.pdf
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Сами изменения можно посмотреть командой diff:
|
Сами изменения можно посмотреть командой diff:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -700,7 +730,7 @@ status collapsed
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\begin_inset Caption
|
\begin_inset Caption Standard
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
\begin_inset CommandInset label
|
\begin_inset CommandInset label
|
||||||
|
@ -824,6 +854,13 @@ git branch -d featureA # удаление
|
||||||
ветки featureA
|
ветки featureA
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
При работе с системами управления проектами (ChilliProject, Redmine, Trac)
|
При работе с системами управления проектами (ChilliProject, Redmine, Trac)
|
||||||
по завершении работы с ветвью имеет смысл добавлять в сообщение коммита
|
по завершении работы с ветвью имеет смысл добавлять в сообщение коммита
|
||||||
|
@ -858,6 +895,13 @@ Bug B fixed.
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -870,6 +914,13 @@ Bug B fixed.
|
||||||
git merge --squash
|
git merge --squash
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Иногда в списке удалённых веток (git branch -r) остаются несуществующие
|
Иногда в списке удалённых веток (git branch -r) остаются несуществующие
|
||||||
ссылки в результате того, что кто-то удалил эту ветвь или несколько веток
|
ссылки в результате того, что кто-то удалил эту ветвь или несколько веток
|
||||||
|
@ -910,6 +961,13 @@ git branch -d -r github/invalid_branch2
|
||||||
git push
|
git push
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Также возможны более сложные операции, к примеру:
|
Также возможны более сложные операции, к примеру:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1039,6 +1097,13 @@ git blame -L 40,+21 main.c # вывести информацию о 21-ой с
|
||||||
с 40-ой
|
с 40-ой
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Если требуется отфильтровать слишком старую историю, можно это сделать следующим
|
Если требуется отфильтровать слишком старую историю, можно это сделать следующим
|
||||||
образом:
|
образом:
|
||||||
|
@ -1054,6 +1119,13 @@ git blame --since=3.weeks -- main.c # игнорировать информац
|
||||||
недель
|
недель
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Вот пример, как можно посчитать общий вклад разработчиков в конкретный файл
|
Вот пример, как можно посчитать общий вклад разработчиков в конкретный файл
|
||||||
проекта:
|
проекта:
|
||||||
|
@ -1099,6 +1171,13 @@ git blame --line-porcelain mainform.cpp | sed -n 's/^author //p' | sort |
|
||||||
git clone git@git.insysltd.ru:~user1/test_project/user1-test_repo.git
|
git clone git@git.insysltd.ru:~user1/test_project/user1-test_repo.git
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Если репозиторий содержит субрепозитории (submodules) необходимо их инициализиро
|
Если репозиторий содержит субрепозитории (submodules) необходимо их инициализиро
|
||||||
вать и синхронизировать:
|
вать и синхронизировать:
|
||||||
|
@ -1162,6 +1241,13 @@ git format-patch master # создать патч, включающий отли
|
||||||
от ветки master
|
от ветки master
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Далее полученный патч может быть отправлен по email или прямо в окно Jabber-клие
|
Далее полученный патч может быть отправлен по email или прямо в окно Jabber-клие
|
||||||
нта.
|
нта.
|
||||||
|
@ -1173,6 +1259,13 @@ git format-patch master --stdout | mail -s 'Please apply this patch, Leo'
|
||||||
leo@matrix.org
|
leo@matrix.org
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Применить полученный патч можно командой apply:
|
Применить полученный патч можно командой apply:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1213,7 +1306,10 @@ git branch -r # список удалённых веток
|
||||||
git branch -a # список всех веток, включая удалённые
|
git branch -a # список всех веток, включая удалённые
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout LyX-Code
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -1264,6 +1360,13 @@ git log --graph --decorate --stat
|
||||||
-stat -- печатать статистику по изменениям в каждом файле.
|
-stat -- печатать статистику по изменениям в каждом файле.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Если нужно вывести лог на определённом временном промежутке, через две точки
|
Если нужно вывести лог на определённом временном промежутке, через две точки
|
||||||
вводится начало и конец:
|
вводится начало и конец:
|
||||||
|
@ -1277,6 +1380,13 @@ git log master..develop
|
||||||
git log f8a32c..3ab98c
|
git log f8a32c..3ab98c
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Можно исключать из выводимого списка коммиты, входящие в какую-либо ветвь,
|
Можно исключать из выводимого списка коммиты, входящие в какую-либо ветвь,
|
||||||
например следующая команда выведет список коммитов из develop, не вошедшие
|
например следующая команда выведет список коммитов из develop, не вошедшие
|
||||||
|
@ -1287,6 +1397,13 @@ git log f8a32c..3ab98c
|
||||||
git log develop ^master
|
git log develop ^master
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Более полный список опций описан в руководстве (git help log).
|
Более полный список опций описан в руководстве (git help log).
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1421,6 +1538,13 @@ git stash apply # применить спрятанные измен
|
||||||
их из stash-списка
|
их из stash-списка
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Можно получить любую версию файла или директории посредством команды checkout:
|
Можно получить любую версию файла или директории посредством команды checkout:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1439,6 +1563,13 @@ git checkout .
|
||||||
# получить из головы (HEAD) содержимое текущей директории
|
# получить из головы (HEAD) содержимое текущей директории
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Можно отменить изменения, попавшие в индекс для следующего коммита:
|
Можно отменить изменения, попавшие в индекс для следующего коммита:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1451,6 +1582,13 @@ git reset # очистить индекс
|
||||||
git reset main.h # убрать из индекса main.h
|
git reset main.h # убрать из индекса main.h
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Вся история команд работы с Git хранится в локальном списке reflog:
|
Вся история команд работы с Git хранится в локальном списке reflog:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1645,6 +1783,13 @@ git rebase --continue # обновить все последующие комм
|
||||||
git push -f # отправить изменённую ветвь на Git-сервер
|
git push -f # отправить изменённую ветвь на Git-сервер
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Также, в некоторых случаях бывает необходимо отредактировать самый первый
|
Также, в некоторых случаях бывает необходимо отредактировать самый первый
|
||||||
коммит (root-commit):
|
коммит (root-commit):
|
||||||
|
@ -1692,6 +1837,13 @@ git commit -m
|
||||||
# во второй коммит.
|
# во второй коммит.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Объединение нескольких коммитов в один можно выполнить ещё проще:
|
Объединение нескольких коммитов в один можно выполнить ещё проще:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1708,6 +1860,13 @@ git rebase -i -p HEAD~5
|
||||||
# которые хотим объединить, сохранить.
|
# которые хотим объединить, сохранить.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Разбить произвольный коммит на два последовательных коммита можно следующими
|
Разбить произвольный коммит на два последовательных коммита можно следующими
|
||||||
командами:
|
командами:
|
||||||
|
@ -1831,6 +1990,13 @@ ABC/
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\end_deeper
|
\end_deeper
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Для этого воспользуемся командой filter-branch, изменяющей историю.
|
Для этого воспользуемся командой filter-branch, изменяющей историю.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1874,6 +2040,13 @@ git filter-branch --index-filter "git rm -r -f --cached --ignore-unmatch
|
||||||
# оставив ABC
|
# оставив ABC
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Аналогично создаётся репозиторий для XYZ
|
Аналогично создаётся репозиторий для XYZ
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1901,6 +2074,13 @@ git filter-branch --index-filter "git rm -r -f --cached --ignore-unmatch
|
||||||
--prune-empty --tag-name-filter cat -- --all
|
--prune-empty --tag-name-filter cat -- --all
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
По опциям команды filter-branch смотрите документацию (git help filter-branch).
|
По опциям команды filter-branch смотрите документацию (git help filter-branch).
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1929,6 +2109,13 @@ git reset --soft HEAD~1 # удалить последний коммит, сох
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -2132,6 +2319,13 @@ git bisect skip # пропустить текущую ревизию
|
||||||
git bisect reset # закончить двоичный поиск
|
git bisect reset # закончить двоичный поиск
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Как только bisect нашёл источник ошибки - ревизию, в которой она была внесена,
|
Как только bisect нашёл источник ошибки - ревизию, в которой она была внесена,
|
||||||
для нахождения ошибки остаётся проанализировать изменения в одном текущем
|
для нахождения ошибки остаётся проанализировать изменения в одном текущем
|
||||||
|
@ -2163,6 +2357,61 @@ git bisect reset # закончить двоичный поиск
|
||||||
выпуском новой версии и слиянием исправлений в master и develop.
|
выпуском новой версии и слиянием исправлений в master и develop.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Случаются ситуации, когда в дереве истории Git нужно найти коммит, где ошибка
|
||||||
|
была исправлена, например, чтобы сообщить мэнтайнеру проекта для отметки
|
||||||
|
в баг-трекере или бэкпортирования (cherry-pick) в другие долгие
|
||||||
|
\begin_inset Quotes eld
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
longtime
|
||||||
|
\begin_inset Quotes erd
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
ветки проекта.
|
||||||
|
Для этого используются все те же самые команды, только вместо git bisect
|
||||||
|
bad нужно вводить git bisect good и наоборот, так как вместо
|
||||||
|
\begin_inset Quotes eld
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
плохого
|
||||||
|
\begin_inset Quotes erd
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
(
|
||||||
|
\begin_inset Quotes eld
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
bad
|
||||||
|
\begin_inset Quotes erd
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
) коммита с ошибкой мы ищем
|
||||||
|
\begin_inset Quotes eld
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
хороший
|
||||||
|
\begin_inset Quotes erd
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
(
|
||||||
|
\begin_inset Quotes eld
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
good
|
||||||
|
\begin_inset Quotes erd
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
) коммит с нужным исправлением.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
cherry-pick - обмен коммитами между ветками
|
cherry-pick - обмен коммитами между ветками
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -2276,6 +2525,13 @@ Added my-lib submodule.
|
||||||
git push
|
git push
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Команда
|
Команда
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -2350,6 +2606,13 @@ git checkout -b mylib_branch mylib_remote/master
|
||||||
git checkout master
|
git checkout master
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Допустим, мы хотим поместить проект mylib в подкаталог с тем же именем:
|
Допустим, мы хотим поместить проект mylib в подкаталог с тем же именем:
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -2358,6 +2621,13 @@ git checkout master
|
||||||
git read-tree --prefix=mylib/ -u mylib_branch
|
git read-tree --prefix=mylib/ -u mylib_branch
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
В отличие от субмодулей данные поддерева хранятся физически в репозитории.
|
В отличие от субмодулей данные поддерева хранятся физически в репозитории.
|
||||||
Субмодули же, по своей сути, лишь ссылаются на данные в другом репозитории.
|
Субмодули же, по своей сути, лишь ссылаются на данные в другом репозитории.
|
||||||
|
@ -2388,6 +2658,13 @@ git merge --squash -s subtree --no-commit mylib_branch # смержить в myl
|
||||||
git commit # зафиксировать изменения
|
git commit # зафиксировать изменения
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Узнать о наличии разницы между подкаталогом mylib/ и кодом в mylib_branch
|
Узнать о наличии разницы между подкаталогом mylib/ и кодом в mylib_branch
|
||||||
можно при помощи
|
можно при помощи
|
||||||
|
@ -2506,6 +2783,13 @@ git fsck
|
||||||
git fsck # выполнить проверку
|
git fsck # выполнить проверку
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Иногда случается, что объект добавлен в индекс
|
Иногда случается, что объект добавлен в индекс
|
||||||
\begin_inset Quotes eld
|
\begin_inset Quotes eld
|
||||||
|
@ -2589,7 +2873,7 @@ status collapsed
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\begin_inset Caption
|
\begin_inset Caption Standard
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
\begin_inset CommandInset label
|
\begin_inset CommandInset label
|
||||||
|
@ -2751,7 +3035,7 @@ status collapsed
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\begin_inset Caption
|
\begin_inset Caption Standard
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
Децентрализованный, но централизованный
|
Децентрализованный, но централизованный
|
||||||
|
@ -2809,7 +3093,7 @@ status collapsed
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\begin_inset Caption
|
\begin_inset Caption Standard
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
Главные ветви
|
Главные ветви
|
||||||
|
@ -2834,6 +3118,13 @@ master
|
||||||
develop
|
develop
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Ветвь master создаётся при инициализации репозитория, что должно быть знакомо
|
Ветвь master создаётся при инициализации репозитория, что должно быть знакомо
|
||||||
каждому пользователю Git.
|
каждому пользователю Git.
|
||||||
|
@ -2907,6 +3198,13 @@ production-ready
|
||||||
Ветви исправлений (Hotfix branches)
|
Ветви исправлений (Hotfix branches)
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
У каждого типа ветвей есть своё специфическое назначение и строгий набор
|
У каждого типа ветвей есть своё специфическое назначение и строгий набор
|
||||||
правил, от каких ветвей они могут порождаться, и в какие должны вливаться.
|
правил, от каких ветвей они могут порождаться, и в какие должны вливаться.
|
||||||
|
@ -2942,7 +3240,7 @@ status collapsed
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\begin_inset Caption
|
\begin_inset Caption Standard
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
Ветви функциональностей (feature branches)
|
Ветви функциональностей (feature branches)
|
||||||
|
@ -3052,6 +3350,13 @@ Deleted branch myfeature (was 05e9557).
|
||||||
$ git push origin develop
|
$ git push origin develop
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Флаг --no-ff вынуждает Git всегда создавать новый объект коммита при слиянии,
|
Флаг --no-ff вынуждает Git всегда создавать новый объект коммита при слиянии,
|
||||||
даже если слияние может быть осуществлено алгоритмом fast-forward.
|
даже если слияние может быть осуществлено алгоритмом fast-forward.
|
||||||
|
@ -3080,7 +3385,7 @@ status collapsed
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\begin_inset Caption
|
\begin_inset Caption Standard
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
no-fast-forward VS fast-forward
|
no-fast-forward VS fast-forward
|
||||||
|
@ -3211,6 +3516,13 @@ $ git commit -a -m "Bumped version number to 1.2"
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Мы создали новую ветку, переключились в неё, а затем выставили номер версии
|
Мы создали новую ветку, переключились в неё, а затем выставили номер версии
|
||||||
(bump version number).
|
(bump version number).
|
||||||
|
@ -3282,6 +3594,13 @@ Merge made by recursive.
|
||||||
$ git tag -a 1.2
|
$ git tag -a 1.2
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Теперь релиз издан и помечен тегом.
|
Теперь релиз издан и помечен тегом.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -3321,6 +3640,13 @@ Merge made by recursive.
|
||||||
(Отчёт об изменениях)
|
(Отчёт об изменениях)
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Этот шаг, в принципе, может привести к конфликту слияния (нередко бывает,
|
Этот шаг, в принципе, может привести к конфликту слияния (нередко бывает,
|
||||||
что к причиной конфликта является изменение номера версии проекта).
|
что к причиной конфликта является изменение номера версии проекта).
|
||||||
|
@ -3361,7 +3687,7 @@ status collapsed
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\begin_inset Caption
|
\begin_inset Caption Standard
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
Ветви исправлений (hotfix branches)
|
Ветви исправлений (hotfix branches)
|
||||||
|
@ -3448,6 +3774,13 @@ $ git commit -a -m "Bumped version number to 1.2.1"
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Не забывайте обновлять номер версии после создания ветви!
|
Не забывайте обновлять номер версии после создания ветви!
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -3509,6 +3842,13 @@ Merge made by recursive.
|
||||||
$ git tag -a 1.2.1
|
$ git tag -a 1.2.1
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
||||||
\series bold
|
\series bold
|
||||||
|
@ -3542,6 +3882,13 @@ Merge made by recursive.
|
||||||
(Отчёт об изменениях)
|
(Отчёт об изменениях)
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
У этого правила есть одно исключение:
|
У этого правила есть одно исключение:
|
||||||
\series bold
|
\series bold
|
||||||
|
@ -3672,6 +4019,13 @@ git config --global user.email "you@example.com"
|
||||||
git config --global user.name "Your Name"
|
git config --global user.name "Your Name"
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset space ~
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Опция --global указывает, что настройки должны быть применены глобально,
|
Опция --global указывает, что настройки должны быть применены глобально,
|
||||||
а не только к текущему репозиторию.
|
а не только к текущему репозиторию.
|
||||||
|
|
Loading…
Reference in New Issue