Настройка 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.Описываем какую проблему решает Пул Реквест с кратким описанием, зачем сделано изменение