Git – это распределенная система контроля версий. Это главное отличие git от svn. Каждый разработчик создает на своем компьютере отдельный, полноценный репозиторий.
git config --global user.name 'Alexander' | создаем глобального пользователя |
git config --global user.email est @mail.ru | создаем email глобального пользователя |
git init | создать репозеторий |
git status | получаем статус изменений |
git add (-a добавит в индекс все файлы | или название файла) | добавить файл для отслеживания |
git diff | просморт неидексированных изменений |
git diff --cached | просморт идексированных изменений |
git commit -m "name commit" | коммит |
git commit -a -m "name commit" | комиит с автоматическим добавление в индекс отклеживаемых файлов |
git rm "name commit" | удаление файлов (из индекса, коммит) |
git rm --cached readme.txt | удалить файл из индекса |
git mv file_from file_to | перемещение/переименование файла |
git clone git://github.com/schacon/simplegit-progit.git | копирование репозитория |
git log | список комитов |
git log --pretty=oneline | список коммитов (в 1 строку параметры) |
git log -p -2 | последние 2 коммита с дельтой разница(-p) |
git log --abbrev-commit --pretty=oneline | показывает коммит с кратким хешем --abbrev-commit |
$ git log --pretty=format:"%h - %an, %ar : %s" | список коммитов в строку (вывод по шаблону) |
git log master..experiment | все коммиты experiment которых нет в master |
git log origin/master..HEAD | все коммиты в текущей ветке, которых нет в ветке master на сервере origin |
git reset HEAD benchmarks.rb | отмена последнего действия с файлом (удаление файла из индекса) |
git commit --amend | добавляет в последний коммит изменения (проиндексированыые) |
git checkout -- benchmarks.rb | отмена изменений в файле (возврат к состоянию предидущего коммита) |
cd | переход в директорию |
mkdir | создание деректории |
touch | создание файла |
git remote show origin | посмотреть инфу о удаленном репозитории origin |
git remote -v | просмотр удаленных репозеториев |
git remote add pb git://github.com/paulboone/ticgit.git | Добавить удаленный репозиторий |
git remote add dv ssh://user@domen.ru:22/data/sites/site.ru где: user - пользователь domen.ru - сервер 22 - порт /data/sites/site.ru - папка сайта Для разрешения доступа push/pull git config receive.denyCurrentBranch ignore |
Добавить удаленный репозиторий (подключаемся по ssh) |
git remote rename pb paul | переименование удаленного репозитория |
git remote rm paul | удаление удаленного репозитория |
git fetch pb | получить свежие данные с репозитория pb |
git pull pb | получить свежие данные с репозитория pb + пытается слить ветки |
git push origin master | поделить данными с репозеторием origin ветка master |
git tag | список меток |
git tag -a v1.4 -m 'my version 1.4' | добавить аннотированную метку |
git tag v1.4-lw | добавить легковесную ветку (уменьшенная инфа) |
git tag -a v1.2 -m 'version 1.2' 9fceb02 | добавление метки к коммиту |
git show v1.4 | посмотреть данные метки, изменения в коммите |
git show master@{yesterday} | где верхушка ветки находилась вчера |
git push origin v1.5 | отправить метку в удаленный репозиторий |
git push origin --tags | отправить все метки в удаленный репозиторий |
git branch testing | создать ветку |
git branch testing test | создать ветку testing на основе ветки test |
git checkout -b iss53 | создать ветку и сразу перейти на нее |
git checkout -b iss53 test | создать ветку iss53 (и сразу перейти на нее) на основе test |
git checkout -b rubyclient jessica/ruby-c | создать ветку rubyclient на основе ветки ruby-c удаленного репозитория jessasica |
git checkout testing | перейти в ветку |
git merge hotfix | обьединение веток |
git branch -d hotfix | удаление слитой ветки |
git branch -D hotfix | удаление ветки (не слитой, принудительно) |
git branch | список веток |
git branch -v | список веток с последним коммитом |
git branch --merged | список веток слитых с текущей |
git branch --no-merged | список веток не слитых с текущей |
git push origin :serverfix | удалить ветку на удаленном сервере |
git push origin featureB:featureBee | отправить локульную ветку featureB в удаленную ветку featureBee |
git checkout experiment git rebase master | перемещение коммита из одной ветки в другую |
git checkout origin/branch | переключиться на удаленную ветку |
git checkout --track origin/branch | переключиться на удаленную ветку и создать локальную для отслеживания |
git rebase --onto master server client | “переключиться на ветку client, взять изменения от общего предка веток client и server и повторить их на master”. |
git rebase master server git checkout master git merge server | перемещение ветки server на ветку master без предварительного переключения на эту ветку при помощи команды. выполнить перемотку основной ветки (master) |
git push --force | переписать изменения на сервере |
ssh-keygen | генерировтаь открытый ключ |
cd ~/.ssh ls | посмотреть наличие ssh ключа: .pub - открытый ключ, id_dsa или id_rsa - секретный |
cat ~/.ssh/id_rsa.pub | посмотреть открытый ключ |
git checkout -b featureBv2 origin/master git merge --no-commit --squash featureB | Опция --squash берёт всю работу на сливаемой ветке (featureB) и сжимает её в один коммит, не являющийся коммитом-слиянием, и помещает его на верхушку текущей ветки. Опция --no-commit сообщает Git'у, что не нужно автоматически записывать коммит. Это позволит вам внести все изменения с другой ветки и затем сделать ещё ряд изменений перед записью нового коммита. |
git format-patch -M origin/master | Команда format-patch создаёт файлы с патчами и выводит их названия. Опция -M сообщает Git'у о необходимости отслеживания переименований файлов. |
git diff master | получить разницу слияния текущей ветки с master |
git archive master --prefix='project/' | gzip > `git describe master`.tar.gz | создать tar архив слепка ветки |
git archive master --prefix='project/' --format=zip > `git describe master`.zip | создать zip архив слепка ветки |
git shortlog | краткая сводка изменений |
git checkout -- 4a2f59a32bd1074c42 name_of_file | возврат состояния файла к нужному коммиту |
git reset --hard 4a2f59a32bd1074c42 | возврат всех изменений к нужному коммиту |
git log -p feedback_form...origin/feedback_form | посмотреть изменения между локальной веткой и удаленной |
git merge origin/feedback_form | слить локальную ветку с удаленной |
git push -u origin feedback_form | отправить ветку на удаленный сервер и отслеживать изменения |
git config --global alias.st "status" | создать алиас для команды |
git stash - копилка изменений | |
git stash save 'NAME' | сохранить измененные файлы в копилку |
git stash list | показать что содержится в копилке |
git stash show shash@{0} | показать список файлов спрятанных в патч копилки |
git stash show -p shash@{0} | показать список файлов спрятанных в патч копилки |
git stash apply | взять все из копилки и положить в рабочую директорию гита (в текущую ветку) |
git stash pop | взять все из копилки и положить в рабочую директорию гита (в текущую ветку) и удалить из копилки |
git stash pop stash@{0} | взять патч 0 из копилки |
git stash drop stash@{0} | удалить патч 0 из копилки |
git stash clear | удаляет все из копилки |