|
|
Строка 1: |
Строка 1: |
| [[:Категория:Работа]] | | [[:Категория:Работа]] |
|
| |
|
| = Модель flow = | | = Singleton = |
| [[Файл:Git-flow.png|Git flow]]
| |
| = Набор команд необходимый для выполнения такого flow =
| |
| 1. Начало работы над какой-нибудь новой функциональностью. Создается отдельная ветка на фичу на основе develop<syntaxhighlight lang="bash">
| |
| git checkout -b new-feature develop
| |
| </syntaxhighlight>
| |
|
| |
|
| 2. Добавление в очередь на коммит и коммитим внутри ветки<syntaxhighlight lang="bash">
| | = IoC / DI / CDI = |
| git add .
| |
|
| |
|
| git commit -am "Commit message"
| | https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8 |
| </syntaxhighlight>
| |
|
| |
|
| 3. Заливаем на удаленный сервер вновь созданную ветку
| | = Factory = |
|
| |
|
| git push -u origin new-feature
| | = Decorator = |
|
| |
|
| 4. Закончив разработку переключаемся в develop и мерджим изменения.<syntaxhighlight lang="bash">
| | https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BA%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) |
| | |
| git checkout develop
| |
| | |
| git merge --no-ff new-feature
| |
| </syntaxhighlight>
| |
| | |
| 5. Отправляем изменения в удаленный репозитарий<syntaxhighlight lang="bash">
| |
| | |
| git push
| |
| </syntaxhighlight>
| |
| | |
| 6. Удаляем ветку<syntaxhighlight lang="bash">
| |
| | |
| git branch -d new-feature
| |
| </syntaxhighlight>
| |
| | |
| 7. Удаляем ветку и ссылку на нее в удаленном репозитарии<syntaxhighlight lang="bash">
| |
| | |
| git push origin :new-feature
| |
| | |
| git remote prune origin
| |
| </syntaxhighlight>
| |
| | |
| 8. Проставление тега у релиза и отправляем его в удаленный репозитарий<syntaxhighlight lang="bash">
| |
| | |
| git tag -a v1.2
| |
| | |
| git push origin --tags
| |
| </syntaxhighlight>
| |
| | |
| = Разные команды =
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git branch --merge
| |
| </syntaxhighlight>
| |
| Посмотреть список бранчей, с которыми происходили merge'и у текущей. Полезно для поиска тех бранчей, которые нужно удалить, так как работа в них больше не ведется и все их изменения уже находятся в текущей ветке. Например посмотреть как называется ветка фичи, которую уже залили в develop.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git branch --no-merge
| |
| </syntaxhighlight>
| |
| Посмотреть список бранчей, с которыми у текущей не было merge'ей. Ищутся кандидаты на слияние.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git fetch origin (либо имя другого репозитария)
| |
| </syntaxhighlight>
| |
| Синхронизировать проект с удаленным репозитарием.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git checkout -b new-feature origin/new-feature
| |
| | |
| git checkout --track origin/new-feature
| |
| </syntaxhighlight>
| |
| Залить с удаленного сервера ветку origin/new-feature, создать локально ветку new-feature (названия могут веток могут различаться, но смысл?) и связать одну с другой. Связывание означает, что команды push и pull будут выполняться по умолчанию в/из origin/new-feature. Второй вариант создаст и привяжет локальную ветку с тем же именем, что и на удаленном сервере. Такой вариант предпочтителен.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git push origin :new-feature
| |
| </syntaxhighlight>
| |
| Удалить ветку new-feature на удаленном сервере origin. Если работа в данной ветке законченна и она слита с основной рекомендуется удалить ветку локально и удаленно.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git commit --amend
| |
| </syntaxhighlight>
| |
| Дописать к последнему commit'у все что находится сейчас в stage. Так же можно дополнить сообщение commit'а. Удобно, когда забыл закомитить какой-нибудь конфиг из другой папки и т.п.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git remote -v
| |
| </syntaxhighlight>
| |
| Показать удаленные репозитарии вместе с их URL.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git remote show origin
| |
| </syntaxhighlight>
| |
| Показать подробности об удаленном репозитории origin, о всех его ветках и о локальных ветках, связанных с ними.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git fetch
| |
| </syntaxhighlight>
| |
| Подтянуть изменения с удаленного репозитария. Аналог svn-update
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git push origin --tags
| |
| </syntaxhighlight>
| |
| Залить все теги на удаленный репозитарий.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git add
| |
| <syntaxhighlight lang="bash">
| |
| Помимо добавления измененых файлов в stage, так же используется для пометки файлов после разрешения конфликтов.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git checkout -- .
| |
| </syntaxhighlight>
| |
| Точка здесь путь до текущей директории. Откатить все изменения внесенные в файлы до коммита. Аналог svn-revert.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git config --global core.edition mcedit
| |
| </syntaxhighlight>
| |
| Сделать редактором сообщений для коммитов mcedit. Опция пременится глобально во всей системе.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git help <команда>
| |
| </syntaxhighlight>
| |
| Выдаст страницу справки по интересующей команде
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git config --global alias.br branch
| |
| </syntaxhighlight>
| |
| Создать глобальный псевдоним br для команды branch. Теперь можно будет писать git br для вызова этой команды. Алиасы работают не только на простую команду, но и в принципе на любую сложную команду с ключами, настройками и т.п. Часто используемые алиасы:
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git config --global alias.st status
| |
| | |
| git config --global alias.br branch
| |
| | |
| git config --global alias.co checkout
| |
| | |
| git config --global alias.ci commit
| |
| | |
| git config --global alias.me merge
| |
| | |
| git log --graph --pretty=oneline
| |
| | |
| git log --graph --pretty=format:'%Cred%h%Creset \-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \--abbrev-commit --date=relative
| |
| </syntaxhighlight>
| |
| Выведет структуру коммитов, слияний и т.д. с сообщениями.
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git add -i
| |
| </syntaxhighlight>
| |
| Вызвать интерактивный режим работы с файлами
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git log --summary -n1
| |
| </syntaxhighlight>
| |
| Выдаст изменения в файлах, сделанные последним коммитом
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git log -p FILENAME
| |
| </syntaxhighlight>
| |
| Получить подробную информацию в виде патчей о каждом изменении конкретного файла ''FILENAME''
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git reset --hard origin/develop
| |
| </syntaxhighlight>
| |
| Отмена не запушеного мёрджа с веткой ''develop''
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git reset
| |
| | |
| git checkout -- .
| |
| </syntaxhighlight>
| |
| Откатить все изменнения до последнего коммита
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git push -u origin paysys-start
| |
| </syntaxhighlight>
| |
| Создал новую ветку paysys-start и нужно залить ее на сервер, попутно привязав push и pull команды - поможет ключ -u
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git remote prune origin
| |
| </syntaxhighlight>
| |
| Удаляет указатель на несуществующую ветку на origin
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git diff
| |
| | |
| git diff HEAD
| |
| </syntaxhighlight>
| |
| Показывает разность файлов между коммитом и текущей версией бранча
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git diff origin/master
| |
| </syntaxhighlight>
| |
| | |
| Показывает разность файлов между локальной копией и удаленной копией (т.е. те изменения которые отправятся на сервер при команде git push)
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git diff origin/master -- paymentManager.php
| |
| </syntaxhighlight>
| |
| Показывает разность файла между локальной копией и удаленной копией (т.е. те изменения которые отправятся на сервер при команде git push)
| |
| | |
| <syntaxhighlight lang="bash">
| |
| git br -m 2nd-level-menu jdo-on-web
| |
| </syntaxhighlight>
| |
| | |
| Переименовать ветку
| |
| | |
| Пометить как улаженный
| |
| | |
| git checkout has the --ours option to check out the version of the file that you had locally (as opposed to --theirs, which is the version that you pulled in).
| |
| | |
| You can pass . to git checkout to tell it to check out everything in the tree.
| |
| | |
| Then you need to mark the conflicts as resolved, which you can do with git add, and commit your work once done:
| |
| | |
| git checkout --ours . # checkout our local version of all files
| |
| | |
| git add -u # mark all conflicted files as merged
| |
| | |
| git commit # commit the merge
| |
| | |
| '''Если вы работаете не в том branch'е и хотите свои изменения закоммитить в новый/другой существующий branch:'''
| |
| <syntaxhighlight lang="bash">
| |
| git stash
| |
| | |
| git checkout -b new-branch
| |
| | |
| git stash pop
| |
| </syntaxhighlight>
| |
| | |
| Здесь:
| |
| | |
| git stash - сохранить текущие незакомиченные изменения в виде патча в стек и сбросить текущую ветку до HEAD
| |
| | |
| git checkout -b new-branch - Создать новую ветку и переключиться в неё. Если ветку создавать не надо, убираем -b
| |
| | |
| git stash pop - применяем последний сохранённый патч из стека и удаляем его из стека
| |
| | |
| | |
| <syntaxhighlight lang="bash">git merge --abort</syntaxhighlight>
| |
| или
| |
| <syntaxhighlight lang="bash">git reset --hard HEAD</syntaxhighlight>
| |
| отмена конфликта во время merge, с которым вы не можете разобраться и хотите вернуть все назад
| |
| | |
| = Состояния файла в git =
| |
| | |
| [[Файл:Git-file-lifestatus.png]]
| |
| | |
| [[Файл:Git-local-operations.png]]
| |
| | |
| = Децентрализованный, но централизованный =
| |
| [[Файл:Git-decentrallized.png|Децентраллизованный]]
| |
| = Ссылки =
| |
| | |
| HOWTO по Git: http://githowto.com/ru
| |
|
| |
|
| | [[Категория:Java]] |
| [[Категория:Работа]] | | [[Категория:Работа]] |
| [[Категория:Git]]
| |