Настройка git и использование

Настройка git

Конфигурация.

git config --global user.name "ctlos"
git config --global user.email "ctlos@protonmail.com"

Генерация ssh-ключей.

ssh-keygen -t rsa -b 4096 -C "ctlos@protonmail.com"

Забрать ключ в ~/.ssh имя id_rsa.pub.

Использование

Инициализация.

git init

Статус.

git status

Игнорирование файлов и каталогов .gitignore.

Добавление изменений.

git add .
git commit -m "test"

Работа с github

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

git remote add origin https://github.com/ctlos/ctlosiso
git remote add origin git@github.com:ctlos/ctlosiso.git

Отменить регистрацию удаленного репозитария.

git remote rm origin

Отправка на github.com.

git push -u origin master
git push --set-upstream origin master

Клонирование.

git clone https://github.com/ctlos/ctlosiso

Ssh.

git clone git@github.com:ctlos/ctlosiso.git

Или ветку.

git clone -b openbox git@github.com:ctlos/ctlosiso.git

Список репозиториев.

git remote

Отправка на github.

git push ctlosiso master

Версия проекта tag.

git tag -f v1.0.0

git push origin v1.0.0

git tag -a v1.0.0 -m "Release of version 1.0.0"
git push --tags

# удалить tag ветку локально
git tag -d v1.0.0
# удаленно
git push --delete origin v1.0.0

Релиз с созданием тега.

pacman -S hub
# черновик
hub release create -d -a ctlos.iso -m "release test" -t "openbox" tag-test
# публикация с привязкой к ветки и создание тега
hub release create -a out/ctlos.iso -m "ctlos openbox 1.3.0" -t "openbox" v1.3.0-ob
# script ~/.bin/grel.sh
grel.sh v1.3.0-ob openbox

Новая ветка.

git branch work

Просмотр веток локально.

git branch

Просмотр веток и удаленных.

git branch -a

Создание локальных веток из удаленных.

git branch openbox origin/openbox
git branch xfce origin/xfce
git branch budgie origin/budgie

Отправка ветки на github.

git push origin dev

Перемещение по веткам.

git checkout work

Получить удаленную ветку.

git checkout -b bspwm origin/bspwm

Слияние веток. Перед этим переключить на ветку в которую сливаем.

git merge work

Удаление веток.

git branch -D work

git push origin -d work

Просмотр изменений.

git log

Откат

Предварительно, получить хэш.

git reset --hard a3775a5485af0af20375cedf46112db5f813322a
git push --force

Для контрибьюторов

1.Форкаем оригинальный репозиторий https://github.com/ctlos/ctlosiso кнопкой Fork

2.Клонируем форкнутый репозиторий

git clone https://github.com/user_login/ctlosiso
cd ctlosiso

3.Создаем новую ветку

git checkout -b new_fix

4.Создаем upstream на оригинальный репозиторий

git remote add upstream https://github.com/ctlos/ctlosiso

5.Меняем файлы

6.Делаем коммит и отправляем правки

git add .
git commit -am "Fixes bla-bla"
git push -u origin new_fix

7.Переходим в свой репозиторий https://github.com/user_login/ctlosiso и жмем кнопку Compare & pull

8.Описываем какую проблему решает Пул Реквест с кратким описанием, зачем сделано изменение

Отредактировать на GitHub