четверг, 6 августа 2015 г.

Заметки про git

Установка

# pkg install git
Проверка установки
% git
Выведет список наиболее востребованных команд. Git с уважением относится к настройкам локали: у меня вывел этот список на русском.

Глобальные настройки

% git config --global user.name "Vasily"
% git config --global user.email "vasily.blinkov@gmail.com"

Создание репозитория

Не знаю как Вам, а мне больше нравится называть это "хранилищами". Долой англицизмы! Перевод должен быть точным.
Клонируем репозиторий в локальный каталог (цветом выделено то, что вводил я, все остальное - вывод git). Предварительно перейти в ту директорию, в которую хочется... поместить клон репозитория.
% git clone git@gitlab.com:vasilyb/braint.git
Клонирование в «braint»…
The authenticity of host 'gitlab.com (54.93.71.23)' can't be established.
ECDSA key fingerprint is f1:d0:fb:46:73:7a:70:92:5a:ab:5d:ef:43:e2:1c:35.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.com' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/vblinkov/.ssh/id_rsa':
warning: Похоже, что вы клонировали пустой репозиторий.
Проверка соединения… готово.
/data/braint (1015) %
Обратите внимание на строку, выделенную курсивом (бирюзовая такая). Там нужно ввести парольную фразу SSH-ключа (если сервер обеспечивает возможность установки безопасного подключения и вы указали парольную фразу при генерации своего ключа; о генерации SSH-ключей можете почитать, например, здесь: SSH keys | GitLab; вкратце: нужно проверить наличие уже существующего ключа в ~/.ssh/, если нет или нужен новый, использовать команду ssh-keygen -t rsa -C "vasily.blinkov@gmail.com" - она интерактивная)

Смотрим, что получилось (должна была появиться директория с именем проекта, в моем случае - braint): ls. Я ее переименую в src: mv braint src.

Заполняем репозиторий

У меня уже были кой-какие "наброски", помещу их в индекс, запишу в репозиторий и обновлю внешние ссылки и связанные объекты. Сначала перейду в скачанную директорию только...
% cd src/
% touch README.md
% mv ../data/index.html .
% rmdir ../data/
% git add *
% git status

% git commit -m "add README and index"
% git push -u origin master
Как я понимаю, origin - это наименование удаленного репозитория, которое можно получить, используя команду git remote. В то же время, master - это ветка локального репозитория.

git status - просмотр состояния репозитория: измененные, добавленные и удаленные файлы, нерешенные конфликты...

История изменений файла:  git log -p index.html | $PAGER


Перемещение файлов, добавленных в индекс

Добавил я, допустим, jquery в проект: добавился файл jquery-2.1.4.min.js и изменился index.html. Сделал
% git add index.html
% git add jquery-2.1.4.min.js
Потом добавил underscore-min.js (git add underscore-min.js) и решил, что неплохо было бы переместить все скрипты в отдельную директорию.
% mkdir scripts
% git add scripts/
Терь перемещаю скрипты, добавленные в индекс
% git mv *.js scripts/
Все, можно записывать и проталкивать изменения
% git commit -m "Add jquery and underscore"
% git push -u origin master







Комментариев нет:

Отправить комментарий