git logoGit — приложение для управления версиями. Если вы работаете над каким-то проектом, даже простым, то лучше попробовать git, потом не сможете от него отказаться. Графические интерфейсы git описаны здесь. Так же будут полезны книга по git и интерактивный курс.

Установка git, простая:

apt-get install git

Основные команды git для терминала :

вызов справки:

git help commit

создать git репозиторий из текущего каталога (создаст скрытую папку .git):

git init

проверка состояния репозитория, какие из измененных файлов не попали в репу:

git status

добавление всех файлов в репозиторий (рекурсивно), вместо точки можно указать имя файла:

git add .

git add index.php

отмена изменений:

git сheckout

создать коммит, если опущен ключ -m, то вызовет редактор (для Ubuntu nano) для добваления комментария коммита:

git commit -m «Описание коммита»

добавляет тег текущей версии:

git tag v1

просмотр тегов:

git tag

после присвоение тегов становится доступным переключение по тегам, а не по хешу:

git checkout v1

возвращение к предыдущей версии:

git checkout <hash>

возвращается к последней версии в ветке master:

git checkout master

просмотр тегов в логах

git hist master --all

просмотр истории изменений

git log

одностраничный формат истории:

git log --pretty=oneline

другие варианты отображения:

git log --pretty=oneline --max-count=2

git log --pretty=oneline --since=’5 minutes ago’

git log --pretty=oneline --until=’5 minutes ago’

git log --pretty=oneline --author=<your name>

git log --pretty=oneline --all

рекомендуемый формат лога

git log --pretty=format:»%h %ad | %s%d [%an]» --graph --date=short

рассмотрим его в деталях:

--pretty=»…» — определяет формат вывода.

%h — укороченный хэш коммита
%d — дополнения коммита («головы» веток или теги)
%ad — дата коммита
%s — комментарий
%an — имя автора
--graph — отображает дерево коммитов в виде ASCII-графика
--date=short — сохраняет формат даты коротким и симпатичным

информация о ветках в клонированном репе:

git branch

создание новой ветки:

git branch newMaster

показать все ветки:

git branch -a

переключение на ветку master:

git checkout master

показывает коммиты удаленные из ветки:

git hist --all

слияние веток:

git checkout style

git merge master

git hist --all

слияние изменений:

git merge origin/master

отправка изменений в общий реп:

git push shared master

Настройка git

первичная настройка git:

git config --global user.name «Your Name»

git config --global user.email «Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.»

git config --global core.autocrlf input

git config --global core.safecrlf true

Последние две команды лучше прокомментировать. Настройка core.autocrlf с параметрами «true» и «input» делает все переводы строк текстовых файлов в главном репозитории одинаковыми. А core.autocrlf true — git автоматически конвертирует CRLF->LF при коммите и обратно LF->CRLF при выгрузке кода из репозитория на файловую систему (используют в Windows).

core.autocrlf input — конвертация CRLF в LF только при коммитах (используют в Mac/Linux). Если core.safecrlf установлен на «true» или «warm«, Git проверяет, если преобразование является обратимым для текущей настройки core.autocrlf.

core.safecrlf true — отвержение необратимого преобразования lf<->crlf. Полезно, когда специфические бинарники похожие на текстовые файлы.

core.safecrlf warn — печать только предупреждение, но принимает необратимый переход.

просмотр конфигурационного файла:

git config --list

Для пользователей Unix/Mac: git status, git add, git commit, git checkout — общие команды, для которых полезно иметь сокращения. Добавьте следующее в файл .gitconfig в вашем $home каталоге:

[alias]
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:\»%h %ad | %s%d [%an]\» --graph --date=short
type = cat-file -t
dump = cat-file -p

Работа с GitHub и Bitbucket

добавить на удаленный репозиторий:

git remote add origin https://github.com/rabamaster/test.git

git push -u origin master

клонировать с удаленного репа:

git clone https://github.com/rabamaster/test.git /папка/куда

получаем токен fda0c8d64c34687db8580bf054064c14e3333d9f

на https://github.com/settings/tokens

вытягивает репу с сервера в состоянии последнего коммита на сервере

git pull

Добавить комментарий


Защитный код
Обновить