Как говорит википедия git — распределенная система управления версиями. Я приведу команды которые я использую каждый день в разработке.
ssh
Если у вас новый сервер первым этапом работы с git это создание ssh ключей, для безопасного использования. Генерация ключа выполняется командой:
ssh-keygen -t rsa -C "myEmail@gmail.com"
Получений ключ будет находится в директории ~/.ssh/id_rsa.pub . Содержимое этого файла надо добавить к своим ssh ключам в github.com или gitlab.com.
Configs
Далее следует указать настройки пользователя гита
git config --global user.name "MyUserName"
git config --global user.email "myEmail@mail.com"
Commands
Итак начнем, с клонирование проекта:
git clone git@github.com:test/project.git folderName
После клонирования проекта мы будем находится по умолчанию в ветке master. Можно стянуть все существующие ветки с сервера командой:
git fetch origin
Далее переходим в нужную ветку git checkout branchName
если это требуется. После этого выполняем две команды. Первая выкачивает все изменения из ветки, вторая создает и рекурсивно обновляет все submodules проекта
git pull origin master
git submodule update --init --recursive
Для создания новой ветки можно использовать команду:
git checkout -b branch_name origin/master
После того как вы сделали изменения вы должны добавить их в гит git add .
и внести их в комит git commit -m 'message commit'
после этого можно залить изменения в ветку на сервер:
git push origin branch_name
— заливаем изменения в репозиторий. Если вы не хотите при каждом изменении в репозитории создавать новый комит, вы можете добавлять изменения к существующему коммиту. git commit --amend
, только при пуши на сервер надо не забыть проставить атрибут -f что б ваши данные попали на сервер git push origin branchName -f
git branch
— просмотр локальных веток
git cherry-pick commit
— если вам не надо правки все ветки, а надо перенести лишь определенный коммит, то вам подойдет cherry-pick
Случаются ситуации когда вы что то сделали не так (например сделали пул не стой ветки которая вам надо), можно откатится командой git reset --hard
. В конец можно добавить хеш комита и тогда изменения откатятся до определенного коммита.
git stash
— в ситуации когда надо переключится на другую ветку но вы не хотите делать коммит, то можно воспользоваться данной командой, она спрячет все грязные данные. Далее вы переключаетесь в другую ветку, делаете какие либо правки и снова возвращаетесь к своей работе. git stash apply
вернет вашу «заначку» — то последнее что вы спрятали. Просмотреть список всех «заначек» — git stash list
. Можно обратится и по индексу git stash apply stash@{2}
Это лишь небольшой список git команд, для более подробной информации можно всегда обратится к справочнику. Я лишь привел те команды которые я действительно использую каждый день.