Краткая инструкция по git
Гит без воды на канале ADV-IT
Основы Git, GitHub и GitHub Actions
Git
Обычный алгоритм работы с гитом, если все норм.
- Проверяем изенения в рабочей папке
git status
- Добавляем измененые файлы в гит наблюдение
git add .
(or)git add *
- Комитим изменения
git commit -m "bla bla"
- Добавление к предыдущему комиту -
git commit --amend
- Добавление к предыдущему комиту -
- Отправка на удаленный репозиторий
git push
Клонирование
git clone <url_git_repo>
Удаление git
Удаление файлов из репозитория или наблюдения.
Удаление файлов из git репозитория
# Удалить из гита из из файловой системы
git rm file1.txt
git commit -m "remove file1.txt"
Удаление из наблюдения гит, но оставить в папке.
Как пример нужно для использования с генераторами сайтов.
Типа jekill
или pelikan
.
В репозитории не нужна папка с готовым, уже сгенерированным сайтом, но он нужен локально.
# удалить из отслеживания в гит но оставив при этом в папке
git rm --cached file1.txt
git commit -m "remove file1.txt"
Удаление ветки
Удаление ветки удобнее выполнять коммандой git branch -d <ветка>
Например удалить ветку с названием dev
:
git branch -d dev
Удаление ветки из удаленого (remote) репозитория
# Удалить из remote гита ветки dev
git push origin --delete dev
# удалить из гита но оставив при этом в папке
git rm --cached file1.txt
git
Конфигурация
Отобразить текущие настройки git
можно командой git config -l
# Отобразить текущие настройки git
git config -l
git config --global user.name "Name of user"
git config --global user.email "user.name@email.mail"
# Сменить редактор по умолчанию на **vim**
git config --global core.editor "nvim"
# Добавить глобальный файл игнора
git config --global core.excludesFile '~/.gitignore'
# Выводить команду git branch в стиле "ls", а не "less"
git config --global pager.branch false
Ветвления Branch
Git - Создание и работа с Ветвлениями - Branch
Особенно удобно для совместной работы в комманде.
Посмотреть все ветки и в какой конкретно ветке я
нахожусь в текущий момент можно командй git branch
user:~/Documents/knowledge-base:ubuntu$ git branch
main
* ubuntu
знак звездочки *
показывает ветку в которой я нахожусь.
Создание веток производится командой git branch
,
а переключение между ветками git checkout
. Так же
есть способ создать ветку и тут же на нее переключиться. Для
этого используетсчя ключ -b
в git checkout
.
например:
# создаем отдельную ветку ubuntu
git branch ubuntu
# удалить ветку ubuntu
git branch -d ubuntu
# переключаемся на ветку ubuntu
git checkout ubuntu
# создаем отдельную ветку ubuntu и тут переходим на нее
git checkout -b ubuntu
Для удаленных репозиториев:
# Retrieve available remote branches
git fetch
# Verify that all branches are now available on the local Git repository
git branch --all
# Закачать бранч с удаленной ветки
# git checkout <название уделнной ветки без origin/>
# например для origin/dev
git checkout dev
Слияния веток merge
Основная команда git merge
.
Подмодули Submodules
Основная статья
Инициация и обновление подмодулей в репозитории
# Инициация подмодулей (например после клонирования)
git submodule init
# Обновлени подмодулей (например после клонирования)
git submodule update
# Обьединенная команда (выполняет приведенные выше действия)
git submodule update --init
Если в репозитории сложная структура с подмодулями внутри подмодулей.
Команду нужно выполнять рекурсивно git submodule update --init --recursive
.
Групповая команда для всех подмодулей foreach
# переключить все подмодули на ветку feature
git submodule foreach 'git checkout -b feature'
Сервера git
... или работа с удаленными репозиториями, тут не имеется в виду понятие "удалить". Правильно понимать слово как "находящийся на удалении" от пользователя.
Удалённые репозитории представляют собой версии вашего проекта, сохранённые в интернете или ещё где-то в сети.
Посмотреть url сервера
git remote -v
# View existing remotes
# origin https://github.com/user/repo.git (fetch)
# origin https://github.com/user/repo.git (push)
Смена удаленного репозитория
git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote's URL
Фишки
Трики и фишки git и github.com
Трекинг папок
По умолчанию git
не может отправлять пустые каталоги. Он может только отслеживать файлы.
Если необходимо чтобы git
трекал их в нее следует добавить файл .gitkeep
— это обычное явление в базах кода,
где пустую папку необходимо отслеживать через Git.
lazygit
Как правило, процесс добавление файлов в git отслеживания git add .
, последующий
коммит git commit -m 'bla bla
ну и последующая отправка в удаленный репо
git push
выглядит уж очень занудно.
В общем все эти команды можно сложить в одну bash
функцию.
function lazygit() {
git add .
git commit -a -m "$1"
git push
}
Этот скрипт слудует добавить в .bashrc
(or .bash_profile
if Mac):
После этого можно использовать имя функции.
lazygit "My commit msg"
Скачивание файлов gist с github
Если надо получить прямую ссылку для скачивания файлов с репозиториев github
файлов с gist
. Например через wget
или curl
URL следует формировать таким образом если нужна конкретная версия комита:
https://gist.githubusercontent.com/{user}/{gist_hash}/raw/{commit_hash}/{file}
Если нужна ссылка на последнюю версию гиста, формирование ссылки делать так:
https://gist.githubusercontent.com/{user}/{gist_hash}/raw/{file}
Посмотреть вывод api
можно обратившись по адресу:
https://api.github.com/gists/{GIST_ID}