GIT
.gitconfig
Конфигурация git
# git config --global user.name "Vasya Pupkin" # git config --global user.email "vasya@mail.ru"
Просмотр конфигурации
# git config -l user.name=Vasya Pupkin user.email=vasya@mail.ru
GIT INIT
Создание репозитория
Команда git init создает в директории пустой репозиторий в виде директории .git, где и будет в дальнейшем храниться вся информация об истории коммитов, тегах, ходе разработки проекта
# mkdir myproject # cd project # git init
GIT ADD
Добавляет содержимое рабочей директории в индекс (staging area) для последующего коммита
Внести в индекс - временное хранилище - изменения, которые затем войдут в коммит(без точки - из всей рабочей области, с точкой — только текущий путь)
# git add .
Внести в индекс - временное хранилище - изменения, которые затем войдут в коммит, включая новые файлы(без точки - из всей рабочей области, с точкой — только текущий путь)
# git add -A .
GIT BRANCH
Создание, перечисление и удаление веток
Добавить новую ветку
# git branch <имя_ветки>
Удалить ветку
# git branch -d <имя_ветки>
Переименование ветки
# git branch -m new-name-branch
Если в репозитории есть другие ветки, их можно увидеть так(активная ветка обозначена звёздочкой)
# git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/Stamps_zebra remotes/origin/master remotes/origin/standart_xlsx
GIT CHECKOUT
Переключение между ветками, извлечение отдельных файлов из истории коммитов
Переключиться в ветку
# git checkout some-other-branch
Создать ветку и переключиться в неё
# git checkout -b some-other-new-branch
Вернуть файл из коммита
# git checkout HEAD files/default/backup-data-cargo.sh
GIT CLONE
Создание копии (удаленного) репозитория
Клонировать репозиторий с той же машины в директорию myrepo
# git clone /home/username/project /myrepo
Клонируем репозиторий через протокол git
# git clone git@gihub.com:/repo-name.git /myrepo
Клонируем репозиторий через ssh
# git clone ssh://git@github.com/repo-name /myrepo
Клонируем репозиторий через https
# git clone https://github.com/repo-name /myrepo
GIT COMMIT
Берёт все данные, добавленные в индекс с помощью git add, и сохраняет их слепок во внутренней базе данных, а затем сдвигает указатель текущей ветки на этот слепок
Выполняет коммит
# git commit -m "комментарий"
GIT LOG
Служит для просмотра изменений репозитория. По умолчанию, без аргументов, git log выводит список коммитов созданных в данном репозитории в обратном хронологическом порядке (самые последние коммиты показываются первыми
Подробная информация в виде патчей по файлам из коммитов
# git log -p diff --git a/files/default/backup-data-zappstore-eu.sh b/files/default/backup-data-zappstore-eu.sh new file mode 100755 index 0000000..0b6cd3b --- /dev/null +++ b/files/default/backup-data-zappstore-eu.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +DIR='/srv/www/zappstore/data/' +USER='deployer' +DS='172.16.2.41' +BACKUP_DIR='/var/lib/vz/storagebox2'
Вывод под каждым коммитом списка измененных файлов, количество измененных файлов, количество добавленных и удаленных строк в этих файлах и ниже краткую статистику по каждому коммиту
# git log --stat commit b5a1eff79966358fbb7e0affbb7974b26d9deb63 Author: Evgeny Onopriyko <finston1978@gmail.com> Date: Fri Jun 10 13:05:10 2016 +0300 update files/default/backup-data-zappstore-eu.sh | 9 +++++++++ files/default/backup-data-zappstore-us.sh | 9 +++++++++ files/default/backup-data-zapsptore.sh | 9 --------- metadata.rb | 2 +- recipes/cargo.rb | 2 +- recipes/zappstore.rb | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ 6 files changed, 80 insertions(+), 35 deletions(-)
Вывод данных о каждом коммите в одну строку
# git log --pretty=oneline f3f7a446f58a245f5426fbf71790540148313e3f update 6df3a30e775995d311f30b3cc74a2ad2b59a6267 Update zappstore.rb 19c78b5a0b599ab2fb78c0e5b0b3ea812636536e Update default.rb
GIT PULL
Синхронизация текущей ветки с репозиторием
Забрать изменения из репозитория и слить с активной веткой
# git pull
Забрать изменения из определенного репозитория
# git pull project
GIT PUSH
Внесение изменений в удаленный репозиторий
Отправить изменения в удаленную ветку, созданную при клонировании по умолчанию
# git push
Отправить изменения из ветки master в ветку experimental удаленного репозитория
# git push ssh://github.com/project.git master:experimental
В удаленном репозитории origin удалить ветку experimental
# git push origin :experimental
Отправить изменения в удаленную ветку master репозитория origin(синоним репозитория по умолчанию) из локальной ветки master
# git push origin master:master
GIT REMOTE
Имя удаленного репозитория
# git remote origin
Информация о удаленном репозитории
# git remote show origin
Изменить origin url удалённого репозитория
# git remote set-url origin git@gitlab.ru:SIP/Back.git
Последние коммиты текущей ветки
# git show commit b5a1eff79966358fbb7e0affbb7974b26d9deb63 Author: Evgeny Onopriyko <finston1978@gmail.com> Date: Fri Jun 10 13:05:10 2016 +0300 update diff --git a/files/default/backup-data-zappstore-eu.sh b/files/default/backup-data-zappstore-eu.sh new file mode 100755 index 0000000..0b6cd3b --- /dev/null +++ b/files/default/backup-data-zappstore-eu.sh @@ -0,0 +1,9 @@ +#!/bin/bash
Текущее состояние индекса. Можно увидеть какие будут произведены изменения при применении commit. Также покажет файлы с неразрешенными конфликтами слияния и файлы, игнорируемые git
# git status На ветке master Ваша ветка обновлена в соответствии с «origin/master». нечего коммитить, нет изменений в рабочем каталоге