Приветствуем в GitFlic
Итак, вы решили начать использовать git ,но не знаете с чего начать? Данную документацию можно использовать в качестве настольного пособия и обращаться по возникающим вопросам.
Для начала вам следует создать свой проект
.
Когда вы создали свой новый репозиторий, необходимо подготовить локальное рабочее пространство.
Используйте консоль на вашем ПК для работы.
Для большего удобства, пользователям Windows, рекомендуем установить отдельную консоль для работы с git. В поисковике запросом "Git для Windows" выбрать предпочитаемый и установить его.
Когда откроете консоль, выполните следующие команды для создания локальной директории для вашего будущего репозитория:
Создание локальной директории
cd ~/
mkdir repos
cd ~/repos
После выполнения предыдущих команд следует указать свои данные, выполнив следующие команды:
Глобальные настройки Git
git config --global user.name "gitflic-user"
git config --global user.email "mail@gitflic.ru"
Далее необходимо выбрать один из вариантов, который подходит вашей ситуации и выполнить команды по порядку
Создание нового репозитория
git clone http://gitflic.ru/project/user/proekt.git //Здесь ссылка на ваш проект
cd proekt
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Использовать существующую директорию
cd existing_folder
git init
git remote add origin http://gitflic.ru/project/user/proekt.git //Здесь ссылка на ваш проект
git add .
git commit -m "Initial commit"
git push -u origin master
Запушить существующий репозиторий
cd existing_folder
git remote rename origin old-origin
git remote add origin http://gitflic.ru/project/user/proekt.git //Здесь ссылка на ваш проект
git push -u origin --all
git push -u origin --tags
После выполнения команд мы видим как локальная/удаленная директория наполнились файлами. Теперь, как мы разобрались с настройкой репозитория, самое время разобраться как пользоваться ветками в системе git
Как создать ветку в git
Для создания ветки и мгновенного переключения на новую ветку используется следующая команда, где *omega - название ветки:
git checkout -b omega
git branch omega
git checkout omega
Распространенные опции для git branch
Вывод списка всех веток в репозитории.
git branch
или
git branch --list
Удаление ветки с названием omega. Это «безопасная» операция, так как git не позволит удалить ветку, в которой есть неслитые изменения. Данная команда удаляет только локальную ветку.
git branch -d omega
Принудительное удаление указанной ветки, даже несмотря на то, что в ней есть неслитые изменения. Эту команда следует использовать, если вы хотите полностью удалить все коммиты, которые относятся к определенному направлению разработки.
git branch -D <branch>
git push origin :refs/heads/<branch>
Вывод списка всех веток удаленного проекта.
git branch -a
Для визуализации файлов под управлением git существует расширение TortoiseGit. Оно имеет логичный интерфейс и отображает иконки к файлам, находящимся под управлением gitдля отображения их статуса в git.
Генерация публичного SSH ключа
Для работы с git многие серверы используют аутентификацию по ssh-ключу. Далее расскажем как создать свой ssh-ключ для работы с git. Процесс создания ssh-ключа аналогичен на всех ОС. Первым делом убедимся, что у вас отсутствует ssh-ключ на локальном компьютере, для этого выполните следующие команды:
cd ~/.ssh
ls
Ищите файл с именем id_dsa или id_rsa и одноименный файл с расширением .pub. Файл с расширением .pub — это ваш публичный ключ, а второй файл — ваш приватный ключ. Если указанные файлы у вас отсутствуют (или отсутствует директория .ssh), вы можете создать их используя команду:
cd ~/
ssh-keygen -t ed25519 -C "your_email@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/gitflic_user/.ssh/id_ed25519):
Created directory '/home/gitflic_user/.ssh'.
Enter passphrase (empty for no passphrase): (оставьте пустым, нажмите Enter)
Enter same passphrase again:
Your identification has been saved in /home/gitflic_user/.ssh/id_ed25519.
Your public key has been saved in /home/gitflic_user/.ssh/id_ed25519.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:xx:yy:zz:96:93:49:da:9b:e3 gitflic_user@gitflic.ru
После создания вашего публичного ssh-ключа его необходимо прописать в настройках к git. Первым делом необходимо получить ssh-ключ из файла. Вы можете открыть ваш публичный ssh-ключ в текстовом редакторе и полностью скопировать содержимое, либо выполнить следующую команду в консоли:
cat ~/.ssh/id_ed25519.pub
Когда скопируете ssh-ключ, пропишите его в настройках, укажите название для ключа, например my-ssh, оставьте поле со сроком годности пустым, тогда ваш ssh-ключ будет всегда активен. Нажмите сохранить и убедитесь что сохранение прошло успешно.
Распространенные команды при работе с git
git clone
Как правило при помощи команды git clone создается копия репозитория от указанного. Это следует делать в новой директории или в другом месте. Исходный репозиторий может находиться в локальной файловой системе или на удаленном устройстве, к которому можно получить доступ с помощью поддерживаемых протоколов.
Пример клонирования проекта в текущую директорию по https-протоколу:
git clone https://gitflic.ru/project/user/project.git
Пример клонирования проекта в текущую директорию по ssh-ключу:
git clone git@gitflic.ru:user/project.git
git add
Команда git add добавляет изменения рабочей директории в промежуточную область. Он сообщает git, что вы хотите включить обновления определенного файла в следующий коммит. Однако git add на самом деле не влияет на репозиторий каким—либо существенным образом - изменения фактически не записываются до тех пор, пока вы не выполните git commit.
Добавление всех изменений в следующий коммит выполняется следующей командой:
git add .
Чтобы добавить в следующий коммит только один измененный файл, то это делается командой, где <file-name>
- полное имя файла:
git add <file-name>
В сочетании с этими командами вам также может понадобиться git status для просмотра состояния рабочего каталога и промежуточной области:
git status
git commit
Коммит проиндексированного состояния кода производится по следующей команде:
git commit
Стоит отметить, что эта команда откроет текстовый редактор, введите комментарий к коммиту. После ввода сохраните файл и закройте текстовый редактор, чтобы выполнить коммит. Выполнение коммита со всеми изменениями в рабочей директории. Эта команда включает только изменения отслеживаемых файлов (которые были добавлены командой git add):
git commit -a
Данная команда создаст коммит с указанным комментарием. По умолчанию команда git commit открывает локальный текстовый редактор для ввода комментария к коммиту. При передаче параметра -m используется добавленный комментарий, минуя текстовый редактор:
git commit -m "commit message"
Также есть параметр, который позволяет команде commit изменять последний коммит. Вместо создания нового, все изменения добавляются в последний. Кроме того, после выполнения команды откроется текстовый редактор и предложит изменить ранее указанный комментарий к коммиту:
git commit --amend
git pull
Команда git pull запускает команду git fetch для загрузки содержимого из указанного удаленного репозитория. Затем выполняется команда git merge, осуществляющая слияние ссылок и указателей удаленного содержимого в новый локальный коммит:
git pull <remote>
Выше указанная команда берет указанную удаленную копию текущей ветви и объединяет ее с локальной копией. Это то же самое, что и git fetch <remote>, за которым следует git merge origin/<current-branch>.
Существует команда, подобная команде по умолчанию, только она не создает новый коммит со слитым содержимым:
git pull --no-commit <remote>
git push
Публикация указанной ветки в удаленном репозитории вместе со всеми необходимыми коммитами и внутренними объектами. Эта команда создает локальную ветку в репозитории назначения. Чтобы предотвратить перезапись коммитов, git не позволит опубликовать данные, если в репозитории назначения нельзя выполнить ускоренное слияние:
git push <remote> <branch>
Если для параметра <remote>
указать значение origin и оставить пустым параметр branch, то изменения будут отправлены в ветку, которая выбрана в данный момент.
Параметр -u аналогично --set-upstream указывает удаленную ветку "по умолчанию", все последующие команды git pull/push будут автоматически общаться между текущей локальной и выбранной удаленной ветками. Данная команда указывается единожды, до тех пор, пока не понадобится указать другую удаленную ветку "по умолчанию".
git push -u origin master
Существует процедура для очистки локальной и удаленной веток, которую целесообразно выполнять для поддержания порядка и не допущения накопления изменений, которые не будут загружены в основную ветку проекта:
git branch -D alpha
git push origin :alpha
Первая команда очистит локальную ветку alpha. Если в команде git push перед именем ветки поставить двоеточие, будет стерта удаленная ветка.
git log
Команда git log
используется для просмотра и анализа истории коммитов в репозитории Git.
git log
git log <путь>
Чтобы отобразить полный граф изменений и найти коммиты, которые могли быть отменены, используйте:
git log --all --decorate --oneline --graph
git log --oneline
git log --graph
git log --author=<имя>
git log --since=<дата>
Вы можете узнать больше о команде git log, используя команду:
git help log