Create a repository
You can store a variety of projects in GitHub repositories, including open source projects. With open source projects, you can share code to make better, more reliable software. You can use repositories to collaborate with others and track your work. For more information, see «About repositories.» To learn more about open source projects, visit OpenSource.org.
Notes:
- You can create public repositories for an open source project. When creating your public repository, make sure to include a license file that determines how you want your project to be shared with others. For more information on open source, specifically how to create and grow an open source project, we’ve created Open Source Guides that will help you foster a healthy open source community by recommending best practices for creating and maintaining repositories for your open source project.
- You can also take a free GitHub Skills course on maintaining open source communities.
- You can also add community health files to your repositories, to set guidelines on how to contribute, keep your repositories safe, and much more. For more information, see «Creating a default community health file.»
- In the command line, navigate to the directory where you would like to create a local clone of your new project.
- To create a repository for your project, use the
gh repo create
subcommand. When prompted, select Create a new repository on GitHub from scratch and enter the name of your new project. If you want your project to belong to an organization instead of to your personal account, specify the organization name and project name withorganization-name/project-name
. - Follow the interactive prompts. To clone the repository locally, confirm yes when asked if you would like to clone the remote project directory.
- Alternatively, to skip the prompts supply the repository name and a visibility flag (
--public
,--private
, or--internal
). For example,gh repo create project-name --public
. To clone the repository locally, pass the--clone
flag. For more information about possible arguments, see the GitHub CLI manual.
Commit your first change
A commit is like a snapshot of all the files in your project at a particular point in time.
When you created your new repository, you initialized it with a README file. README files are a great place to describe your project in more detail, or add some documentation such as how to install or use your project. The contents of your README file are automatically shown on the front page of your repository.
Let’s commit a change to the README file.
- In your repository’s list of files, click README.md.
- Above the file’s content, click .
- On the Edit file tab, type some information about yourself.
- Above the new content, click Preview changes.
- Review the changes you made to the file. You will see the new content in green.
- At the bottom of the page, type a short, meaningful commit message that describes the change you made to the file. You can attribute the commit to more than one author in the commit message. For more information, see «Creating a commit with multiple co-authors.»
- Below the commit message fields, decide whether to add your commit to the current branch or to a new branch. If your current branch is the default branch, you should choose to create a new branch for your commit and then create a pull request. For more information, see «Creating a new pull request.»
- Click Propose file change.
Now that you have created a project, you can start committing changes.
README files are a great place to describe your project in more detail, or add some documentation such as how to install or use your project. The contents of your README file are automatically shown on the front page of your repository. Follow these steps to add a README file.
-
In the command line, navigate to the root directory of your new project. (This directory was created when you ran the
gh repo create
command.) -
Create a README file with some information about the project.
echo "info about this project" >> README.md
-
Enter
git status
. You will see that you have an untrackedREADME.md
file.$ git status Untracked files: (use "git add ..." to include in what will be committed) README.md nothing added to commit but untracked files present (use "git add" to track)
-
Stage and commit the file.
git add README.md && git commit -m "Add README"
-
Push the changes to your branch.
git push --set-upstream origin HEAD
Next steps
You have now created a repository, including a README file, and created your first commit on GitHub.com.
- You can now clone a GitHub repository to create a local copy on your computer. From your local repository you can commit, and create a pull request to update the changes in the upstream repository. For more information, see «Cloning a repository» and «Set up Git.»
-
You can find interesting projects and repositories on GitHub and make changes to them by creating a fork of the repository. Forking a repository will allow you to make changes to another repository without affecting the original. For more information, see «Fork a repository.»
-
Each repository on GitHub is owned by a person or an organization. You can interact with the people, repositories, and organizations by connecting and following them on GitHub. For more information, see «Be social.»
-
GitHub has a great support community where you can ask for help and talk to people from around the world. Join the conversation on GitHub Community.
При разработке собственного проекта, рано или поздно, приходится задуматься о том, где хранить исходный код и как поддерживать работу с несколькими версиями. В случае работы на компанию, обычно это решается за вас и необходимо только поддерживать принятые правила. Есть несколько общеупотребимых систем контроля версий, и мы рассмотрим одну из самых популярных — это Git и сервис Github.
Система Git появилась, как средство управления исходными текстами в операционной системе Linux и завоевала множество поклонников в среде Open Source.
Сервис Github предоставляет хостинг (хранение) исходных текстов как на платной, так и на бесплатной основе. Это одна из крупнейших систем, которую любят Open Source пользователи. Основное отличие платной версии — это возможность создания частных репозиториев (хранилищ) исходных текстов и если вам скрывать нечего, то можете спокойно пользоваться бесплатной версией.
После того, как вы начали работу над проектом и написали какой-то работающий прототип, у вас появится желание сохранить результаты работы. Это так же может быть полезно в случае, если вы захотите продолжить работу на другом компьютере. Самое простое решение — это сохранить все на флешке. Этот вариант неплохо работает, но если есть подключение к интернету (а сейчас у кого его нет), то удобно воспользоваться системами Git/Github.
В этой статье будут описаны базовые сценарии использования систем Git/Github при работе над проектом в среде Linux с помощью командной строки. Все примеры проверялись на системе с Linux Ubuntu 14.04 и Git 1.9.1. Если вы пользуетесь другим дистрибутивом, то возможны отличия.
Создание локального репозитория
Предположим, что ваш проект находится в папке /home/user/project. Перед тем, как сохранять исходники, можно посмотреть, нет ли временных файлов в папке с проектом и по возможности их удалить.
Для просмотра папки удобно воспользоваться командой tree, которая покажет не только содержимое каждой папки, но и древовидную структуру директорий.
Часто временные файлы содержат специфические суффиксы, по которым их легко обнаружить и в последствии удалить. Для поиска таких файлов можно воспользоваться командой find. В качестве примера посмотрим, как найти все файлы, которые генерируются компилятором Python и имеют расширение .pyc
Переходим в папку с проектом /home/user/project:
cd /home/user/project
И показываем список файлов с расширением .pyc:
find . -name *.pyc
Эта команда выведет список всех файлов с расширением .pyc в текущей директории и в ее поддиректориях. Для удаления найденных файлов, достаточно добавить ключ -delete к этой команде:
find . -name *.pyc -delete
Очень рекомендуется не спешить и сразу ключ этот не добавлять. Первый раз вызвать команду для просмотра файлов и только убедившись, что в список не попало ничего полезного добавить ключ удаления.
Создадим локальный репозиторий в папке с проектом:
git init
После выполнения этой команды появится новая папка с именем .git. В ней будет несколько файлов и поддиректориев. На данный момент система управления версиями еще не видит наших файлов.
Добавление файлов в локальный репозиторий
Для добавления файлов используется команда:
git add readme
После выполнения команды, файл readme будет добавлен в систему управления версий (конечно если он уже был то этого в проекте). При добавлении файла генерируется хеш значение, которое выглядит примерно так:
9f2422325cef705b7682418d05a538d891bad5c8
Добавленные файлы хранятся в папке .git/objects/xx/yyyyyyyy, при этом первые 2 цифры хеша ипользуются для указания директории, а остальное хеш значение является именем файла. Наш добавленный файл будет находится здесь:
.git/objects/9f/2422325cef705b7682418d05a538d891bad5c8
Что легко увидеть с помощью команды:
ls .git/objects
Сам файл является архивом, который легко распаковать и вывести на экран, указав полное значение хеша.
git cat-file -p 9f2422325cef705b7682418d05a538d891bad5c8
Для того, чтобы добавить все файлы из текущей директории введите:
git add .
Если нужно добавить файлы из текущей директории и из всех поддиректориев, то используйте:
git add --all
Для того, чтобы в систему не попадали временные файлы, можно их занести в файл .gitignore, который нужно создать самостоятельно и разместить в корневом каталоге проекта (на том же уровне, что и .git директория).
Например, если в в файл .gitignore добавить следующую строчку *.pyc, то все файлы с расширением .pyc не будут добавляться в репозиторий.
После добавления файлов, все изменения находятся в так называемой staging (или cached) area. Это некоторое временнное хранилище, которое используется для накопления изменений и из которого создаются собственно версии проектов (commit).
Для просмотра текущего состояния можно воспользоваться командой:
git status
После выполнения команды мы увидим, что в stage area находится наш файл:
new file: readme
Если вы продолжите вносить изменения в файл readme, то после вызова команды git status вы увидите две версии файла.
new file: readme
modified: readme
Чтобы добавить новые изменения достаточно повторить команду. Команда git add не только добавляет новые файлы, но и все изменения файлов, которые были добавлены ранее.
git add readme
Можно отменить добавления файла readme в staging area с помощью команды:
git rm --cached readme
После выполнения команды, файл readme отметится, как неизмененный системой.
Создание версии проекта
После того, как мы добавили нужные файлы в staging area мы можем создать версию проекта. С помощью команды:
git commit -m "comment"
Каждая новая версия сопровождается комментарием.
После коммита, мы сможем найти два новых объекта внутри .git репозитория.
.git/objects/9f/2422325cef705b7682418d05a538d891bad5c8
.git/objects/65/7ab4c07bd3914c7d66e4cb48fe57f5c3aa7026
.git/objects/da/c6721c3b75fcb3c9d87b18ba4cef2e15e0a3d3
Посмотрим, что внутри:
git cat-file -t 657ab4c07bd3914c7d66e4cb48fe57f5c3aa7026
Ключ -t показывает тип объекта. В результате мы видим:
commit
Для второго объекта:
git cat-file -t dac6721c3b75fcb3c9d87b18ba4cef2e15e0a3d3
Результат:
tree
Для самого первого файла:
git cat-file -t 9f2422325cef705b7682418d05a538d891bad5c8
Мы видим:
blob
Если мы будем дальше изучать содержимое этих файлов, то обнаружим древовидную структуру. От каждого коммита можно по ссылкам пройти по всем измененным файлам. Для практического применения это не очень нужно, но возможно так будет легче понять, что происходит при работе с системой Git.
Самую первую версию отменить нельзя. Ее можно только исправить. Если вы хотите добавить изменения в последнюю версию, то после выполнения команды commit, добавляете необходимые изменения и вызываете:
git commit -m "comment" --amend
Или так:
git commit --amend --no-edit
Ключ —no-edit нужен, чтобы не вводить заново комментарий.
Можно просмотреть изменения, которые вы внесли последним коммитом:
git show
Или так:
git show --name-only
Ключ —name-only нужен, чтобы показывать только имена измененный файлов. Без него по каждому измененнному файлу будет выдан список всех изменений.
Если вы продолжили работать и изменили только те файлы, которые были уже добавлены в систему командой git add, вы можете сделать коммит одной командой:
git commit -a -m "comment"
Для просмотра списка всех коммитов, воспользуйтесь командой:
git log
Или так:
git log --oneline
Ключ —oneline нужен, чтобы уменьшить количество информации выдаваемой на экран. С этим ключем каждый коммит показывается в одну строчку. Например:
2b82e80 update
657ab4c first
Для того, чтобы просмотреть изменения по конкретному коммиту, достаточно в команду git show добавить хеш значение коммита, которое можно получить с помощью предыдущей команды.
git show 657ab4c
Для отмены последнего коммита (кроме самого первого) можно воспользоваться следующей командой:
git reset HEAD~1
Для того чтобы удалить все файлы в папке, которые не относятся к проекту и не сохранены в репозитории, можно воспользоваться командой:
git clean -df
Создание репозитория на Github
До текущего момента мы работали с локальным репозиторием, который сохранялся в папке на компьютере. Если мы хотим иметь возможность сохранения проекта в интернете, создадим репозиторий на Github. Для начала нужно зарегистрироваться на сайте github.com под именем myuser (в вашем случае это может быть любое другое имя).
После регистрации нажимаем кнопочку «+» и вводим название репозитория. Выбираем тип Public (репозиторий всегда Public для бесплатной версии) и нажимаем Create.
В результате мы создали репозиторий на сайте Github. На экране мы увидим инструкцию, как соединить наш локальный репозиторий со вновь созданным. Часть команд нам уже знакома.
Добавляем удаленный репозиторий (по протоколу SSH) под именем origin (вместо origin можно использовать любое другое имя).
git remote add origin git@github.com:myuser/project.git
Можем просмотреть результат добавления с помощью команды:
git remote -v
Если все было правильно сделано, то увидим:
origin git@github.com:myuser/project.git (fetch)
origin git@github.com:myuser/project.git (push)
Для того, чтобы отменить регистрацию удаленного репозитария введите:
git remote rm origin
Это может понадобиться, если вы захотите поменять SSH доступ на HTTPS. После этого можно добавить его опять, например под именем github и протоколом HTTPS.
git remote add github https://github.com/myuser/project.git
Следующей командой вы занесете все изменения, которые были сделаны в локальном репозитории на Github.
git push -u github master
Ключ -u используется для того, чтобы установить связь между удаленным репозиторием github и вашей веткой master. Все дальнейшие изменения вы можете переносить на удаленный репозиторий упрощенной командой.
git push
Перенос репозитория на другой компьютер
После того, как репозиторий был создан на Github, его можно скопировать на любой другой компьютер. Для этого применяется команда:
git clone https://github.com/myuser/project.git
Результатом выполнения этой команды будет создание папки project в текущем каталоге. Эта папка также будет содержать локальный репозиторий (то есть папку .git).
Так же можно добавить название папки, в которой вы хотите разместить локальный репозиторий.
git clone https://github.com/myuser/project.git <myfolder>
Работа с одним репозиторием с разных компьютеров
С одним репозиторием с разных компьютеров может работать несколько разработчиков или вы сами, если например работаете над одним и тем же проектом дома и на работе.
Для получения обновлений с удаленного репозитория воспользуйтесь командой:
git pull
Если вы изменили ваши локальные файлы, то команда git pull выдаст ошибку. Если вы уверены, что хотите перезаписать локальные файлы, файлами из удаленного репозитория то выполните команды:
git fetch --all
git reset --hard github/master
Вместо github подставьте название вашего удаленного репозитория, которое вы зарегистрировали командой git push -u.
Как мы уже знаем, для того чтобы изменения выложить на удаленный репозиторий используется команда:
git push
В случае, если в удаленном репозитории лежат файлы с версией более новой, чем у вас в локальном, то команда git push выдаст ошибку. Если вы уверены, что хотите перезаписать файлы в удаленном репозитории несмотря на конфликт версий, то воспользуйтесь командой:
git push -f
Иногда возникает необходимость отложить ваши текущие изменения и поработать над файлами, которые находятся в удаленном репозитории. Для этого отложите текущие изменения командой:
git stash
После выполнения этой команды ваша локальная директория будет содержать файлы такие же, как и при последнем коммите. Вы можете загрузить новые файлы из удаленного репозитория командой git pull и после этого вернуть ваши изменения которые вы отложили командой:
git stash pop
Заключение
Мы рассмотрели базовые сценарии работы с системами Git и Github. Каждая приведенная выше команда имеет значительно больше ключей и соответственно возможностей. Постепенное их изучение даст вам возможность легко оберегать свои иходники и больше концентрироваться непосредственно на разработке.
Linux / OS X
Создаем удаленный репозиторий, указывая имя учетной записи.
curl -u 'USER_NAME' https://api.github.com/user/repos -d'{"name":"demo"}'
Вводим пароль от учетной записи:
Enter host password for user ‘USER_NAME’:
Репозиторий demo
создан.
Теперь выгружаем проект.
git remote add origin https://github.com/USER_NAME/demo.git
git push -u origin master
Windows
Вариант 1:
Устанавливаем утилиту cURL и перезагружаемся. Дальше последовательность идентична Linux.
Вариант 2 (Спасибо @PinkTux):
Cкачиваем архив wget, разархивируем в любое место на диске и прописываем путь в переменной PATH
.
Открываем командную строку и пишем следующее:
wget https://api.github.com/user/repos --user=%USER_NAME --password=%PASSWORD --auth-no-challenge --post-data="{"name":"demo"}"
Обратите внимание на экранирование кавычек (обратный слэш перед кавычкой) в --post-data
.
Не смотря на отсутствие необходимости перезагрузки, все же способ имеет и недостаток — необходимо явно в строке указывать пароль.
Таким способом можно создавать репозитории с различными параметрами.Вот туд приведен полный перечень параметров.
Например для создания приватного репозитория (если у вас есть конечно такая привилегия) нужно подставить в первую строку после -d
:
'{"name":"demo", "private":"true"}'
Источник
#Руководства
- 25 мар 2021
-
14
Загружаем проект в удалённый репозиторий через GitHub Desktop
Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно — возможно, вы ещё не прочли его следующую публикацию.
GitHub — это облачный сервис, где разработчики хранят файлы и совместно работают над проектами. GitHub взаимодействует с системой контроля версий Git. Сегодня вы узнаете, как он работает. Мы создадим репозиторий, добавим в него файлы проекта, синхронизируем репозиторий с ПК, научимся обновлять файлы, добавлять новые ветки и сливать их в одну.
Для работы понадобится GitHub Desktop — приложение от GitHub, которое позволяет выполнять необходимые действия без командной строки. Эта статья предполагает, что вы знаете про контроль версий Git. Если нет — рекомендуем почитать об этом, а затем возвращаться к изучению GitHub.
Создаём учётную запись
Перейдите на сайт github.com, зарегистрируйтесь и верифицируйте адрес электронной почты. Выберите тип аккаунта: публичный или приватный. В публичном аккаунте репозитории видны всем, а в приватном — только тем участникам, которым вы сами открыли доступ. По умолчанию вы переходите на бесплатный тариф, который можно изменить в разделе Pricing. Платные тарифы отличаются повышенной безопасностью, размером хранилища и некоторыми специальными опциями для профессиональной разработки.
Далее рекомендуем выставить настройки безопасности и заполнить профиль — на GitHub много IT-рекрутеров, которые по информации в профиле набирают кандидатов в проекты. Поставьте фото и ссылки на соцсети, откройте доступ к электронной почте и напишите о себе: расскажите про опыт, специализацию, пройденные курсы, рабочий стек технологий и выполненные проекты. Заполненный профиль повышает вероятность трудоустройства.
Добавляем удалённый репозиторий
Репозиторий — это файловое хранилище проектов. На бесплатном тарифе можно загружать до 500 МБ данных и создавать неограниченное количество репозиториев.
Чтобы создать репозиторий, нажмите на кнопку New repository, назовите проект и кликните Create repository. Можно добавить описание проекта, сделать его публичным или приватным и прикрепить технические файлы:
- README file содержит подробное описание проекта — так другие разработчики узнают, какой репозиторий они смотрят и зачем он нужен.
- Gitignore позволяет сэкономить место и не заливать на GitHub лишние файлы. Например, можно исключить скрытые файлы Mac OS.
- License добавляет к коду ссылку на первоисточник и защищает права разработчика. Лицензия позволяет понять, как правильно использовать чужой код и можно ли его свободно внедрять в коммерческие проекты.
Мы создаём тестовый репозиторий, поэтому обойдёмся без лицензии — выберем только два дополнительных файла: README file и gitignore. Если вы пока не знаете, что писать в README file и что добавлять в gitignore, — оставьте эти файлы пустыми или посмотрите инструкцию в разделе Read the guide.
В README file отображается краткое описание проекта — сейчас этот файл не важен, поэтому мы не будем менять его описание. Изменим файл gitignore и сделаем так, чтобы он не учитывал служебные папки операционной системы:
- Переходим на сайт gitignore.io.
- Добавляем macOS или другую операционку, с которой вы работаете.
- Жмём Create и получаем нужный служебный файл.
- Копируем данные и переносим их в файл gitignore на GitHub.
После редактирования gitignore делаем коммит — записываем в историю проекта факт того, что мы установили ограничение для файлов Mac OS.
Переносим удалённый репозиторий на ПК
Перейдите на сайт desktop.github.com и скачайте GitHub Desktop — это приложение, которое позволит синхронизировать удалённый репозиторий на GitHub и файлы на вашем компьютере без командной строки терминала:
- Скачиваем приложение под свою операционную систему.
- Открываем приложение и проходим авторизацию — нужно указать электронную почту и данные вашего GitHub-аккаунта.
- Приложение синхронизируется с удалённым репозиторием и предложит выполнить одно из следующих действий: создать новый репозиторий, добавить локальную папку с компьютера в GitHub Desktop или клонировать существующий репозиторий в папку компьютера.
Мы создали тестовый удалённый репозиторий, поэтому выберем третий вариант — клонировать существующий репозиторий в папку компьютера.
После клонирования репозитория в рабочем пространстве появятся три вкладки: Current Repository, Current Branch и Fetch origin.
- Current Repository — раздел позволяет переключаться между несколькими репозиториями, отслеживать невнесённые изменения (вкладка Changes) и смотреть историю коммитов (вкладка History).
- Current Branch — раздел позволяет переключаться между несколькими ветками проекта.
- Fetch origin — раздел обновляет внесённые изменения и синхронизирует файлы локального и удалённого репозитория.
Обратите внимание на раздел Current Repository и вкладку Changes. В левом нижнем углу есть окно для добавления коммитов и комментариев — это означает, что вы можете записывать каждый шаг, не посещая сайт GitHub.
На скриншоте первый коммит технический, он указывает на то, что мы создали репозиторий. Второй коммит наш — им мы редактировали файл gitignore. История хранит все коммиты, и мы можем вернуться к любому из них. Это страховка от непредвиденных случаев
Добавляем новые файлы на ПК и переносим их в удалённый репозиторий
Папка с файлами нашего репозитория хранится на рабочем столе. Чтобы продолжить работу, откроем проект в редакторе кода: можно выбрать любую программу, и GitHub Desktop предлагает воспользоваться Atom.
Выбор редактора кода — дело вкуса. Мы будем работать с репозиторием в Visual Studio Code — это бесплатный редактор от компании Microsoft.
Создадим HTML-файл, добавим базовую структуру и посмотрим на боковое меню — HTML-файл подсвечен зелёным цветом. Это означает, что в проекте появились изменения и они ещё не добавлены в репозиторий на GitHub.
Переходим в GitHub Desktop — созданный HTML-файл появится во вкладке Changes. Для его сохранения пишем коммит и переходим во вкладку History для просмотра изменений. Если изменения сохранились, нажимаем на Push origin и отправляем изменения в удалённый репозиторий.
Создаём новую ветку и добавляем в проект внесённые изменения
Добавим к проекту пустой CSS-файл и подключим его к HTML. После этого в меню редактора появятся два цвета: HTML-файл подсветится оранжевым, а CSS-файл — зелёным. Оранжевый означает, что файл уже есть в удалённом репозитории и его нужно обновить. Зелёный — файла нет в репозитории. Переходим в GitHub Desktop и добавляем коммит для этого изменения.
Если мы откроем созданную страницу в браузере, то это будет несколько строчек текста на белом фоне. Представим такую ситуацию: нам нельзя изменять код проекта, но нужно посмотреть, как будет выглядеть страница на красном фоне. Чтобы сделать это — добавим в репозиторий новую ветку:
- Переходим в GitHub Desktop.
- Открываем раздел Current Branch, нажимаем кнопку New Branch, пишем название новой ветки и кликаем Create New Branch.
- Возвращаемся в редактор кода и тестируем идею.
После создания новой ветки не забудьте нажать на Push origin, чтобы изменения попали в удалённый репозиторий на сайте GitHub.
Предположим, наша идея с красным фоном оказалась удачной и код нужно залить в основную ветку. Чтобы это сделать, переходим сайт GitHub, нажимаем кнопку Сompare & pull request и подтверждаем изменения кнопкой Merge pull request. Последний шаг — переходим в GitHub Desktop, кликаем Fetch origin и синхронизируемся с удалённым репозиторием. Теперь код из дополнительной ветки попал в основную, а изменения есть на ПК и в облаке.
- Почитайте Pro Git book — это бесплатное руководство по Git.
- В футере github.com откройте раздел Training → Explore → GitHub Learning Lab — бесплатные курсы для углублённого изучения GitHub. Подходят для новичков и опытных программистов, которые учатся работать в команде.
- Посетите GitHub Community — форум с множеством тем про GitHub, где можно задавать вопросы и участвовать в обсуждениях.
Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.
Участвовать
Школа дронов для всех
Учим программировать беспилотники и управлять ими.
Узнать больше
https://gbcdn.mrgcdn.ru/uploads/post/2647/og_image/ecf77551ce8bbb63bd84cedacb83dd8f.png
Мы уже рассказывали о том, что такое GitHub и зачем он нужен. В этой статье разберём его установку, настройку и сделаем первый пуш.
Для работы с Git можно скачать готовые GUI — наглядные графические интерфейсы для управления репозиторием, например GitKraken или GitHub Desktop. Это отличное решение для новичка, но потом все, как правило, переходят на консоль.
Сегодня поговорим как раз о том, как можно пользоваться Git из консоли. То есть освоим один из самых популярных способов.
Как установить Git
Чтобы использовать команды Git, сперва его нужно поставить на компьютер.
На iOS он чаще всего идёт из коробки: чтобы найти его, нужно открыть терминал и набрать git —version:
Если вдруг его у вас нет, можно воспользоваться менеджером недостающих пакетов для macOS — Homebrew. Для установки пропишите в консоли brew install git.
Чтобы использовать Git на системе Linux, нужно поставить пакет Git. Например, для установки на Ubuntu нужно будет прописать sudo apt install git.
Если вы используете Windows, потребуется поставить консоль. Выберите нужный файл исходя из разрядности вашей системы и загрузите его:
После того как скачаете его, запустите установщик:
Для скорости можно не менять дефолтные настройки и прокликать Next:
Теперь вы можете использовать на Windows такую же консоль, как и на iOS:
Все описанные ниже команды будут работать как в терминале на iOS и Linux, так и в Windows.
Регистрация в Git
Чтобы воспользоваться сервисом, нужно зайти на сайт GitHub и зарегистрировать нового пользователя. Придумайте имя и пароль, а также введите email, к которому у вас есть доступ:
Теперь, когда у вас есть свой аккаунт, нужно залогиниться в самой консоли, чтобы связать их. Для этого понадобится выполнить команды в консоли, которые зададут имя пользователя и почтовый ящик.
git config —global user.name «user-name»
git config —global user.email email@example.com
Вместо user-name подставьте логин, который указывали при регистрации. В нашем случае это test-github-04, а вместо email@example.com — адрес вашей электронной почты. В нашем примере — testgithub@gmail.com.
Если вы всё сделали по инструкции, то при выполнении команды git config —list отобразится ваше имя пользователя:
Не забудьте верифицировать аккаунт: откройте первое письмо на почте от GitHub и пройдите по ссылке. Иначе вы не сможете создавать репозитории.
Как опубликовать первый проект на Git
Зайдите в ваш профиль: для этого кликните по иконке в правом верхнем углу и нажмите Your Profile:
Теперь создайте репозиторий: перейдите во вкладку Repositories и кликните по кнопке New:
Задайте имя репозитория. Мы придумали название проекта test-github и сделали его публичным, чтобы его могли просматривать все пользователи. Далее нажмите кнопку Create repository:
Пока проект пустой, но мы можем поместить в него наши файлы с локальной машины.
Будем использовать протокол HTTPS — с ним проще работать с Git, чем с SSH. Подробнее про различия протоколов можно прочитать в документации.
Github предлагает несколько вариантов создания проекта:
- клонировать папку по выбранному протоколу;
- создать проект с нуля — сегодня мы рассмотрим именно этот способ;
- опубликовать уже созданный проект;
- скопировать проект.
Создание проекта с нуля
При помощи команды cd нужно найти нужную папку. Про часто используемые команды можно прочитать в статье про работу с терминалом.
Команда echo «# test-github» >> README.md добавляет новый файл в проект. Его также можно создать вручную в папке.
git init — инициализирует проект. После инициализации создаётся специальная скрытая папка для Git:
В ней файлы и папки генерируются автоматически. Они нужны для корректной работы Git, никакого дополнительного взаимодействия с этой папкой не предусмотрено:
git add README.md — добавляет изменённые файлы к коммиту. Также это можно сделать при помощи команды git add . — в таком случае вы добавите не конкретные файлы, а все изменённые, если их много:
git status поможет проверить, что происходит с изменёнными файлами. В нашем случае, например, файлы не прикреплены к коммиту:
git commit -m «first commit» добавляет сообщение к коммиту — то, что будет отображаться в истории. В скобках можно указать любой текст. Как правило, в нём кратко описывают, что делали в коммите.
Теперь снова посмотрим, что скажет git status. Сейчас он пустой, так как все изменённые файлы мы прикрепили к только что созданному коммиту:
git log показывает историю коммитов:
git branch позволяет просмотреть ветки. В нашем примере текущая ветка называется master. Но с 2020 года GitHub выступает за то, чтобы главная ветка называлась main (по политическим причинам) и рекомендует переименовать ветку с помощью команды git branch -M main.
Команда git remote add origin https://github.com/test-github-04/test-github.git добавляет сервер, где origin — это имя сервера, а url — это адрес.
У вас может быть несколько удалённых серверов, с которыми работает проект. Проверить добавленные сервера можно командой git remote -v (fetch — откуда забирать, push — куда отправлять изменения).
git push -u origin main позволяет запушить (отправить) ветку main на сервер origin. Тут вам, скорее всего, потребуется связать приложение и GitHub, повторно залогинившись через браузер.
И теперь вас можно поздравить с первым опубликованным проектом!
В следующих статьях мы рассмотрим альтернативные способы публикации проекта и дальнейшее взаимодействие с ним. Если у вас есть идеи, что ещё стоит разобрать в наших гайдах, оставляйте комментарии!
- →
В предыдущей статье мы рассмотрели наиболее часто используемые команды при работе в командной строке. В данной публикации продолжим осваивать этот инструмент, используя его для взаимодействия с системой контроля версий (Version Control System, СКВ) Git, а также с его неизменным спутником, хранилищем кода, GitHub.
1. Система контроля версий
Одной из важнейших тем, которую необходимо изучить начинающему разработчику, а также освоить сопутствующие ей приложения, является СКВ. Это must have инструмент для любого программиста, с которым в обязательном порядке нужно уметь работать.
Чтобы было понятнее, что такое СКВ, приведем ряд примеров и задач, которые она призвана решать.
Программист устраивается в компанию, где ему предстоит работать над одним проектом с другими разработчиками. Каким образом он сможет предоставлять свой код коллегам и получать доступ к их наработкам: с помощью какого-то мессенджера, электронной почты, соц. сетей? А если над проектом работает не один десяток или сотня людей, которые используют код друг друга и меняют его ни по одному разу в день?
Наш программист написал работающий код, но, увлекшись его оптимизацией, испортил свою часть работы, да еще и затронул код коллег, от чего программа стала работать не корректно. Как решить такую проблему и вернуться к рабочей версии кода: жать до посинения Ctrl + Z, чтобы откатиться к ней? А если среда разработки не запомнила все изменения и отменить уже ничего нельзя?
Внешняя компания, помогающая разрабатывать приложение, прислала патч с кодом, содержащим ошибку, которую никто вначале не заметил. Из-за этого программа стала уязвима для хакерских атак. Специалист по информационной безопасности спустя какое-то время обнаружил брешь и решил выяснить, кто был автором уязвимого кода. Узнать это не имея на руках все изменения, которые были внесены в проект, достаточно проблематично.
Для решения этих и множества других задач необходимо иметь простой и удобный инструмент, который позволял бы:
- отслеживать все изменения в коде, которые были внесены разработчиками
- обмениваться кодом внутри команды
- хранить все промежуточные версии файлов
- отменять внесенные изменения в код, откатываясь до любой рабочей версии (как точки восстановления в Windows)
- видеть, кто и когда вносил изменения в файлы
Для таких ситуаций и были придуманы СКВ, которые стали отраслевым стандартом как для командной разработки, так и среди индивидуальных программистов.
Следует заметить, что СКВ используют не только программисты, но и писатели, дизайнеры, переводчики — все, кому требуется хранить промежуточные версии своих наработок.
2. Виды СКВ
СКВ бывают локальными (ЛСКВ), централизованными (ЦСКВ) и распределенными (РСКВ).
2.1. Первое поколение СКВ
В первом поколении СКВ были локальными: они хранили все изменения файлов на одном устройстве в локальной базе данных. При этом разрешалось только одному пользователю одновременно вносить изменения в файл. Такие системы не предназначены для удобного взаимодействия с удалённой командой. Примером ЛСКВ является SCCS и RCS.
2.2. Второе поколение СКВ
Для решения проблем ЛСКВ были созданы ЦСКВ, которые используют центральный сервер для хранения всех версий файлов. А уже к нему по сети подключаются разработчики для получения, хранение файлов и т. д. Эти системы впервые позволили нескольким разработчикам одновременно работать с одними и теми же файлами. Использование ЦСКВ являлось стандартом на протяжении многих лет. К ним относятся CVS, Subversion и т. д.
ЦСКВ позволяет взаимодействовать между собой удаленным участникам, но при этом все привязаны к одному серверу, где хранятся файлы проекта, что является серьезным недостатком. Если он вдруг станет недоступен или повредится жесткий диск, то ни один из его клиентов не сможет использовать контроль версий, да и это чревато повреждением файлов и потерей части проекта.
2.3. Третье поколение СКВ
С целью устранения недостатков ЦСКВ были разработаны системы третьего поколения или РСКВ такие, как Git, Mercurial, Bazaar. В данных системах клиенты скачивают к себе на локальный компьютер полностью весь проект со всеми файлами и их изменениями за все время его существования. И если один из серверов выйдет из строя, то потерянный код можно будет восстановить, взяв его у любого программиста из команды, и загрузить на общий сервер для продолжения работы.
РСКВ прекрасно зарекомендовали себя в командной работе вне зависимости от того, в какой части света находятся сотрудники.
3. СКВ Git
Git — самая популярная, бесплатная РСКВ с открытым исходным кодом, которая позволяет отслеживать любые изменения в файлах, работать над одним проектом совместно с коллегами, обмениваться кодом и многое другое. С историей возникновения Git можно ознакомиться по этой ссылке.
Распределенность Git означает, что работоспособность системы не зависит от одного центрального сервера, хранящего файлы. Вместо этого любой клиент имеет у себя на компьютере полную версию репозитория (хранилища кода) с историей изменений, сделанными за все время существования проекта. Т. е. код проекта распределяется одинаково между всеми участниками.
Некоторые путают Git и GitHub, но это не одно и тоже. Git — это программа (консольная утилита), которую устанавливает у себя программист для отслеживания и внесения изменений в файлах. GitHub — это сайт (хостинг) для хранения этих изменений и обмена файлами проекта. Его еще называют социальной сетью для программистов. Существуют и другие подобные сайты, например, BitBucket, SourceForge, GitLab и т. д.
Если кратко, то первоначальное взаимодействие Git и GitHub выглядит так: вы устанавливаете Git и подключаете его к своему проекту; регистрируетесь на GitHub; создаете в нем пустой репозиторий; переносите файлы с помощью Git со своего компьютера на GitHub (в облако) для доступа к ним другим участникам команды (или только для себя).
4. Скачивание и установка Git
Скачаем Git с официального сайта и установим к себе на компьютер. Мне нужна версия под Windows.
Запустим скачанный файл и начнем установку.
-
Выбираем компоненты, которые следует установить: я везде поставлю галочки.
-
Выбираем, какой текстовый редактор будет использоваться Git при необходимости. Я выберу Sublime Text.
Не забудьте протестировать его запуск: при нажатии на Test Custom Editor откроется Sublime Text с надписью «Please modify this text, e.g. delete it, then save it and exit the editor.», где нас просят изменить текст или удалить, а затем сохранить. После сохранения изменений закройте Sublime Text. Появится небольшое окно с надписью Success! Жмите ОК, а затем Next.
-
В этом окне нужно выбрать, как будет называться ветка по умолчанию (master, main или как-то иначе). Что такое ветки — мы обсудим позже. В данном случае оставляем все, как есть.
-
В этом окне необходимо выбрать, какие инструменты смогут использовать Git. Выбираем рекомендуемый вариант.
-
При выборе ssh-клиента оставляем все без изменений.
-
В следующему окне тоже ничего не меняем без необходимости.
-
Настройка правил окончания строки. Тут тоже ничего не меняем.
-
Выбор эмулятора терминала, который будет использован с Git Bash. Ничего не меняем.
-
Настройка поведения Git при использовании команды git pull. Ничего не меняем.
-
Выбор использования встроенного в Git менеджера учетных записей. Оставляем все, как есть.
-
Настройка кэширования данных файловой системы для некоторых операций. Оставляем без изменений.
-
Следующий экран настроек просто пропускаем. В нем для нас нет ничего полезного.
5. Создание аккаунта и репозитория на GitHub
5.1. Создание аккаунта
Перейдите на сайт github.com и в правом верхнем углу страницы, для регистрации, нажмите Sign up.
Введите свои данные: электронную почту; пароль (рекомендации по созданию надежного пароля); имя, которое будет использоваться на GitHub и подтверждение на рассылку.
После регистрации, на указанную почту, придет письмо: откройте в нем ссылку для подтверждения своего электронного адреса.
5.2. Создание репозитория
Следующим шагом является создание на GitHub нового репозитория.
Репозиторий — это просто хранилище для чего угодно. В нашем случае, мы будем хранить в нем код. Репозиториев можно создать неограниченное количество под любой проект. Например, сейчас мы создадим хранилище под названием startjava2 (вам цифру 2 писать не нужно). А в будущем еще несколько под разными названиями: basejava, topjava — в них будет храниться код, связанный с этими проектами.
Чтобы создать новый репозиторий, нажмите на сайте GitHub в правом верхнем углу + и выберите New repository.
Откроется новая страница с первоначальными настройками, где нужно ввести имя репозитория и краткое описание (необязательно). Также необходимо пометить, чтобы он был Public (при Private доступ к репозиторию будет только по приглашению). Все остальное мы настроим позже.
Нажав Create repository, вас перекинет на страницу со ссылкой на созданный репозиторий и набором стандартных команд, которыми мы воспользуемся в следующей статье.
6. Способы авторизации
Доступ к репозиториям на GitHub из командной строки можно получить двумя способами: по протоколу HTTPS или SSH.
С 13 августа 2021 г. GitHub отменил использование паролей для аутентификации из командной строки с помощью Git в пользу токенов персонального доступа (Personal access tokens, PAT). Эти шаги были сделаны с целью повышения безопасности пользователей.
6.1. Токен персонального доступа и HTTPS
Для доступа (авторизации) к GitHub по протоколу HTTPS необходимо создать PAT.
Преимущества PAT перед паролями:
- возможность генерации токена для каждого устройства, с которого необходимо получать доступ к репозиторию на GitHub
- возможность настройки ограничений для каждого токена при работе с GitHub
- возможность аннулирования токена для конкретного устройства
- возможность ограничить срок действия токена
6.1.1. Создание токена
Для создания токена необходимо выполнить следующие шаги:
-
Авторизуйтесь на github.com, а затем нажмите на фотографию своего профиля и выберите Settings.
-
В левой панели нажмите пункт Developer settings
-
Так же слева нажмите Personal access tokens, а затем кнопку Generate new token
-
Дайте название (краткое описание) создаваемому токену, а также срок его действия.
-
Выберите действия, которые будет разрешать данный токен. Чтобы использовать его для доступа к репозиториям из командной строки, отметьте пункты, где присутствует слово repo. А затем нажмите Generate token.
Скопируйте полученный токен в буфер обмена для последующего использования
Предупреждение: относитесь к своим токенам как к паролям, и держите их в секрете.
Полученный токен необходимо использовать в командной строке вместо пароля при выполнении операций Git через HTTPS.
При запросе аутентификации, вам нужно будет ввести:
Username: ваш email
Password: ваш токен
В Windows Git для хранения учетных данных пользователей поставляется с диспетчером учетных данных (Git Credential Manager for Windows, GCM). Мы с ним встречались во время установки Git. Он по умолчанию сохраняет учетные данные, что позволяет не вводить их все время.
Для просмотра его конфигурации введите следующую команду:
git config credential.helper
Если вы используете Git версии 2.29 или более позднюю, то в консоли отобразится надпись manager-core. Для более ранних версий credential.helper имеет значение manager.
Если команда выдаст что-то отличное от manager-core, то введите:
git config --global credential.helper manager-core
7. Доступ через SSH
Если среди начинающих про HTTPS знают все, то про SSH многие даже и не слышали. Исправим это, проведя вводный ликбез, а заодно и узнаем про доступ к GitHub через данный протокол.
SSH (Secure SHell, «безопасная оболочка») — это сетевой протокол, обеспечивающий шифрование передаваемых данных, а также защищенный доступ к удаленному серверу.
Подключаться к удаленному серверу можно как с помощью пароля, так и посредством двух ключей (публичного и приватного), которые нам нужно создать — второй способ наиболее предпочтителен.
В терминале пишем команду ssh-keygen (после все время жмем Enter, ничего не вводим).
В итоге по адресу C:UsersИмя_пользователя.ssh будет создано два файла: id_rsa (приватный — никому его не показывайте) и id_rsa.pub (открытый — можете показывать кому угодно).
Чтобы проще запомнить назначение ключей, их можно представить, как замок (открытый) и ключ к замку (закрытый). Замок без ключа не открыть, а при этом замок может видеть кто угодно.
Данные ключи являются взаимозависимыми: зашифровав информацию одним ключом, расшифровать ее можно только другим. Например, если вы зашифровали pdf-документ публичным ключом (ставите на него замок), то открыть и прочитать его сможете только вы, т. к. только у вас есть закрытый ключ. Так же это работает и в обратную сторону: если вы зашифруете письмо приватным ключом, то расшифровать его можно только вашим публичным ключом.
Это также означает, что так как ваш публичный ключ может распространяться открыто, то любой, кто им обладает (коллега), сможет открыть зашифрованный документ. Но в этом нет опасности, т. к. это лишь гарантирует, что документ был зашифрован именно вами. По такому принципу работает цифровая подпись.
Зайдите внутрь файла с открытым ключом обычным текстовым редактором и скопируйте его содержимое.
Для создания SHH-ключа необходимо выполнить следующие шаги:
-
Нажмите на фотографию своего профиля и выберите Settings
-
В левой панели нажмите пункт SSH and GPG keys
-
Нажав зеленую кнопку New SSH key, появится форма, в поле Title которой запишите название ключа (необязательно), а в Key поместите открытый ключ и кликните Add SSH key.
Для проверки работоспособности ключей, необходимо выполнить какие-то действия с Git, которые будут обращаться к GitHub. Используем простую команду clone, которая копирует любой репозиторий с GitHub на компьютер. Зайдите на страницу созданного ранее репозитория, и скопируйте его ssh-адрес.
Выполните в консоли команду git clone (напишите yes, где потребуется), открыв ее в любом месте, например, на диске D:. После успешного клонирования удалите полученные файлы.
8. Установка Octotree
Для удобной навигации по файлам на GitHub установим расширение для браузера — Octotree: перейдите на сайт и выберите версию под используемый вами браузер.
Откроется магазин с расширениями для установки Octotree.
После установки плагина на GitHub с левой стороны появится боковая панель с отображением всех файлов и папок, которые есть в текущем репозитории. Выглядеть это может примерно так:
Это расширение поможет значительно упростить навигацию по файлам и папкам, которые будут представлены в виде дерева, как это обычно бывает в файловых системах.
9. Настройка Git
9.1. Создание локального репозитория
Перед использованием Git необходимо создать локальный репозиторий и выполнить настройку.
Внешний репозиторий мы уже создали на GitHub, но он пока пуст.
Укажем Git на корневую папку нашего проекта, чтобы он мог отслеживать в ней все изменения.
Для этого существует команда init, отвечающая за создание репозитория, т. е. места на компьютере, где хранятся файлы и папки проекта.
Репозиторий будет размещаться в папке StartJava. Именно в ней мы будем хранить все подпапки и классы, связанные с изучаемыми темами в рамках всего цикла статей для начинающих Java-программистов.
Откроем cmder в папке StartJava и введем git init:
D:JavaStartJava
> git init
Initialized empty Git repository in D:/Java/StartJava/.git/
Просто init мы не можем написать, т. к. будет непонятно к чему относится данная команда. Поэтому необходимо в начале писать git, а только потом нужную команду.
Репозиторий успешно создан. В результате в консоли стало отображаться слово master, а в папке StartJava появилась скрытая папка .git (с точкой в начале), где и будет в дальнейшем храниться информация обо всех изменениях, сделанных в репозитории. Отобразим его:
D:JavaStartJava (master)
> ls -a
./ ../ .git/ about.txt src/
9.2. Настройка Git
В Git существуют аж целых три файла для хранения настроек. Чтобы понять зачем столько и что это за настройки, давайте отобразим их содержимое. Сильно вдаваться в подробности мы не будем, но для общего понимания этот вопрос стоит разобрать. Введем команду git config -l —show-origin:
Подробную справку к любой команде Git можно получить, написав git <команда> —help. Она отобразится отдельной страницей в окне браузера. Для получения краткой справки в терминале используется ключ -h.
git config --help
git config -h
Подробности смотрите по ссылке.
Выведенную в терминале информацию я разбил на три части (по количеству файлов). Каждая часть содержит настройки и путь до содержащих их файлов.
В красной рамке выделены системные настройки, которые содержат общие для всех пользователей и их репозиториев значения (не забываем, что учетных записей пользователей в системе может быть больше одной).
В синей рамке выделены глобальные настройки для одного конкретного пользователя и всех его репозиториев.
Зеленой рамкой выделены настройки, созданного на компьютере репозитория.
Запомнить, какой файл с настройками когда использовать, несложно:
- Если в вашей системе один пользователь, то системные настройки вам ни к чему
- Если вы планируете для всех своих репозиториев использовать одни и те же параметры, то подойдут глобальные настройки
- Если для какого-то репозитория необходимо установить свои параметры, отличные от других, то используйте локальные настройки
Исходя из всего выше сказанного, нам подходят глобальные настройки (у меня они уже выставлены). Если нужно будет в будущем внести какие-то отличные от глобальных настроек параметры, то вы всегда сможете воспользоваться локальными настройками.
9.3. Установка личной информации
В первую очередь, укажите электронную почту и имя на GitHub. Эти данные нужны для подписи изменений, которые будут вноситься в репозиторий, чтобы было видно, кто изменил, добавил, удалил код.
git config --global user.email ВАШ_ЕМЭЙЛ
git config --global user.name ВАШЕ_ИМЯ
Параметр —global позволяет выставить один раз нужные настройки, которые Git будет использовать для всех репозиториев на вашем компьютере.
Отобразим внесенные изменения:
> git config --get user.name & git config --get user.email
ВАШЕ_ИМЯ
ВАШ_ЕМЭЙЛ
Если для каких-то отдельных репозиториев необходимо указать другое имя или электронную почту, то используйте параметр —local. При этом нужно обязательно находиться в папке репозитория, а иначе команда не сработает.
9.4. Установка текстового редактора
Если вам требуется изменить текстовый редактор, который будет запускать Git при необходимости, то для начала нужно найти его расположение на вашем диске. В официальной документации к Git есть таблица с подсказками по поводу места размещения и параметров для разных редакторов. Либо вы можете найти его самостоятельно с помощью команды where, которую мы использовали во второй части.
Для смены редактора (хоть мы его и указали во время установки, но знать, как его изменить — лишним не будет) и отображения результата выполните команды:
> git config --global core.editor "'C:Program FilesSublime Textsublime_text.exe' --wait"
> git config --get core.editor
'C:Program FilesSublime Textsublime_text.exe' --wait
Обратите внимание, что я добавил дополнительные одинарные кавычки (апострофы) в путь до текстового редактора (помимо двойных кавычек). Это сделано из-за наличия в пути пробелов (если у вас их нет, то и кавычки не нужны). Без дополнительных кавычек редактор не запустится.
Также я добавил параметр —wait, который не позволит закрыться редактору, пока вы его сами не завершите. Без него в будущем возникла бы ошибка «aborting commit due to empty commit message» при использовании команды commit (ее мы пройдем позже).
9.5. Смена имени ветки по умолчанию
Если по какой-то причине вам захочется поменять слово master (название ветки по умолчанию) на что-то другое, например, сейчас идет тренд в пользу main, то выполните команду:
git config --global init.defaultBranch main
9.6. Корректное отображение русских букв
Для тех, кто использует Windows с именами для папок и файлов на русском языке, необходимо выполнить команду:
git config --global core.quotepath off
Если этого не сделать, то все сообщения, в которых фигурируют русские символы, будут нечитаемы.
Я переименовал src в срс и выполнил git status (ее мы пройдем позже). Вместо срс отобразилось «321201321200321201/».
После выполнения настройки, русский текст будет отображаться корректно.
Дополнительную информацию про настройку Git можно посмотреть по ссылке.
Заключение
В этой вводной статье мы рассмотрели основы СКВ, их виды, а также выполнили установку и настройку Git, создали аккаунт на GitHub. В следующей публикации мы подробно рассмотрим основные команды Git, которые позволят вам начать с ней работать.
Оцените статью, если она вам понравилась!
Самая короткая инструкция о том, как сохранить файлы в GitHub и ничего не сломать. И самое главное — никакой консоли, всё через окошки и с помощью мышки. Для этого используем GitHub Desktop.
Внимание! GitHub Desktop не работает на Windows 7×32, поэтому если у вас эта версия системы, обновитесь до Windows 10 или воспользуйтесь программой GitKraken на свой страх и риск.
В этой статье идёт рассказ о системах контроля версий. Если вы совсем ничего о них не знаете, прочитайте статьи «Словарь терминов для Git и GitHub» и «Введение в системы контроля версий», чтобы понять терминологию и разобраться, зачем мы вообще это делаем.
Регистрация и вход
Если у вас ещё нет аккаунта на GitHub, то о его создании есть отдельная статья в блоге Академии.
После первого входа в GitHub Desktop вас попросят ввести ваши логин и пароль от GitHub. com. После этого у вас появится доступ ко всем репозиториям, сохранённым в профиле.
Создание репозитория
Если вы никогда не пользовались гитхабом, нужно будет создать репозиторий для работы над проектом.
На главном экране GitHub Desktop выбираем пункт «Create a New Repository on your hard drive».
Нужно будет ввести название репозитория, его описание и выбрать папку на компьютере, куда будут сохраняться файлы.
После этого нажимаем на Create repository, ждём несколько секунд и готово — на компьютере появилась папка, которой можно пользоваться для разработки вашего проекта.
Клонирование репозитория
Если у вас уже какой-нибудь репозиторий на Гитхабе, его можно клонировать. Клонировать — это скачать все файлы к себе на компьютер, чтобы можно было их изменять и потом загружать обратно.
Выбираем Add -> Clone Repository…
В открывшемся окне выбираем один из имеющихся репозиториев. В данном случае он называется zaverstai, но у вас может быть любой другой.
После этого файлы репозитория начнут скачиваться — если их много, то это займет некоторое время.
Работа с репозиторием. Меняем файлы и сохраняем обратно
Вне зависимости от того, создали вы репозиторий или клонировали его, так выглядит GitHub Desktop с открытым репозиторием, в котором мы пока ничего не меняли.
Слева — поле для измененных файлов, справа — служебная информация. Слева снизу — поле для коммитов.
Если не усложнять, то склонированный репозиторий это просто каталог на компьютере. Можно нажать «Show in Finder» на Mac или «Show in Explorer» в Windows и откроется папка, где лежат все файлы, которые есть в репозитории.
Давайте добавим какой-нибудь файл. Например, я добавил в локальный репозиторий (скопировал в папку) файл index. html, который взял отсюда. Вы можете загрузить файл с кодом вашего проекта или изменить уже существующий.
Сразу после добавления или изменения файла в окне GitHub Desktop будет видно, что изменилось — если мы добавили целый новый файл, то все строчки будут с плюсиками и зелёные. Это значит, что они были добавлены в файл и GitHub Desktop раньше их никогда не видел.
Загружаем новый репозиторий на GitHub
Если вы не создавали новый репозиторий, а склонировали старый, то можете пропустить этот пункт.
После того, как мы добавили какой-то код в свежесозданный репозиторий, нужно сделать коммит, то есть зафиксировать все сохранённые изменения и дать им название. Текст должен быть лаконичным и в то же время сообщать о том, что делает коммит. Например, «добавляет имя наставника в Readme», «вводит функцию сортировки изображений», «правит ошибку в поиске городов на карте». Вводим имя жмём большую синюю кнопку «Commit to main»
Изменения, которые мы внесли и сохранили, пока локальны. Их нужно послать на GitHub. Чтобы опубликовать свежесозданный репозиторий на GitHub, нажмите Publish repository.
Появится подтверждение о публикации репозитория — проверяем название и описание, если нужно, ставим галочку о том, что код приватный, и публикуем.
Готово — после этого репозиторий появится в вашем профиле на GitHub. com.
Добавляем код и коммитим изменения
Репозиторий создан и загружен на GitHub, теперь нужно добавить немного кода.
Когда вы допишете код в файлы, которые находятся в репозитории, вы сможете просмотреть все их изменения в окне GitHub Desktop. Вот здесь, например, мы изменили «второй» на «третий» в тексте страницы — и изменения сразу видны, можно проверить, что всё исправленное будет загружено.
Дальше действуем по проверенной схеме — коммитим изменения.
В центре главного экрана появится предложение запушить коммит в удалённый репозиторий. Соглашаемся и жмём Push origin.
Готово! Теперь, если зайти на GitHub. com, в наш репозиторий, увидим уже изменённый файл, который мы только что отправили.
Всё получилось — теперь вы можете создать или склонировать репозиторий, добавить туда файлы, опубликовать всё это на GitHub. com, не прикасаясь к консоли. Это ли не чудо!
В этой статье была показана работа только с основной веткой репозитория. Если вы хотите разобраться, как создавать новые ветки (и зачем это нужно) и добавлять их в основную ветку, прочитайте статью «Работа с git через консоль». Это более сложная статья, поэтому можете сделать небольшой перерыв и вернуться к ней позже.
Больше статей
- Полезные команды для работы с Git
- Введение в системы контроля версий
- Шпаргалка по Git
GitHub
Рекомендация: подборка платных и бесплатных курсов Python — https://katalog-kursov.ru/
В этом мануале представлены основные сведения об инструментах контроля версий программного обеспечения и рассмотрен алгоритм создания локального репозитория, связанного с удалённым.
- Github нужен для взаимодействия между разработчиками при совместной работе над проектами (может использоваться в течении всего жизненного цикла ПО).
- Работа в Github организуется посредством предоставления определенного доступа через интернет каждому из членов команды к рабочим директориям проекта, истории изменений, а также к задачам и документации проекта, с возможностью изменять файлы и отслеживать историю их редактирования.
Основы
GitHub — онлайн-хостинг репозиториев, обладающий всеми функциями системы контроля версий и функциональностью управления (в него входит всё то, что поддерживает Git). Вместе с Git он даёт разработчикам возможность сохранять их код онлайн, а затем взаимодействовать с другими разработчиками в разных проектах.
Git — это инструмент, позволяющий реализовать распределённую систему контроля версий.
GitHub — это сервис для проектов, использующих Git.
Создать коммит (commit) значит зафиксировать изменения любых файлов, входящих в репозиторий.
Репозиторий — каталог файловой системы, в котором могут находится: файлы журналов конфигураций и операций, выполняемых над репозиторием, а также сами контролируемые файлы.
Репозиторий бывает:
- локальный (расположен непосредственно в памяти компьютера разработчика, в нем происходит разработка и фиксация изменений, после чего можно отправить на удалённый репозиторий)
- удалённый (находится на сервере, может быть приватным – доступным ограниченному числу лиц, и публичным – open source)
В GitHub входит:
- система контроля доступа
- багтрекинг (отслеживание истории действий над файлами и, при необходимости, переход на более ранние версии)
- возможность управлять задачами и справками для проектов
К проекту, загруженному на GitHub, можно получить доступ с помощью интерфейса командной строки и Git-команд, сайта https://github.com/, или с помощью приложения Github — desktop для Windows или macOS.
Для первого коммита на Github необходимо установить Git, создать локальный репозиторий, добавить в него файлы, сделать коммит, подключиться к удалённому репозиторию и отправить в него изменения.
Установка Git
Для Linux:
1. Откройте терминал и перейдите в желаемую директорию для установки.
2. Введите: sudo apt-get install git
Для macOS:
1. Воспользуемся homebrew
2. Вводим в терминале: brew install git
Для Windows, (для macOS и Linux — альтернатива):
1. Перейдите по ссылке: http://git-scm.com/downloads
2. Выберите нужный пакет и следуйте дальнейшим инструкциям.
Далее работа с Git будет выполняться в терминале Bash, который станет доступен на любой ОС после установки Git. Так вы будете лучше понимать устройство работы с системами контроля версий и возможности графического клиента ограничены по сравнению с консольным.
Создание и настройка локального репозитория
1. Открываем Bash
Пусть наш проект имеет путь в файловой системе Users/Public/Project. Перед созданием локального репозитория желательно удалить все ненужные, временные файлы в папке проекта.
2. Настроим имя пользователя и адрес электронной почты:
git config --<span class="hljs-built_in">global</span> user.name <span class="hljs-string">"Name"</span> git config --<span class="hljs-built_in">global</span> https://www.linkedin.com/redir/general-malware-page?url=user%2eemail email@mail.ru
(где Name – логин пользователя, email@mail.ru — почта)
Теперь каждое наше действие будет отмечено именем и почтой, это вносит порядок в историю изменений.
tree – команда для просмотра древовидной структуры файловой системы, в которой мы находимся.
find – удаление файлов со специфичным суффиксом.
3. Переходим в папку с проектом Users/Public/Project:
<span class="hljs-built_in">cd</span> Users/Public/Project/
4. Создадим локальный репозиторий в папке с проектом:
git <span class="hljs-keyword">init</span>
Командная строка должна вернуть что-то вроде:
Initialized empty Git repository <span class="hljs-keyword">in</span> Users<span class="hljs-regexp">/Public/Project/</span>
Добавление файлов в локальный репозиторий
1. Теперь создадим любой файл в нашей директории, например, first.txt
2. Добавим его в систему управления версиями:
git add first.txt
3. Если нужно добавить все файлы в директории, то используем:
git add –A
или:
<span class="hljs-comment">git</span> <span class="hljs-comment">add</span> <span class="hljs-literal">--</span><span class="hljs-comment">all</span>
4. Проверить текущее состояние:
git status
Можно отменить добавление файла командой:
git rm –-cached first.txt
Создание версии проекта
После добавления нужного файла в staging area (область подготовленных файлов) можно создать версию проекта.
1. Введем команду:
git <span class="hljs-keyword">commit</span> -m <span class="hljs-string">"comment"</span>
Ключ –m означает создание пользователем описания этого коммита.
Для удаления всеx файлов в папке, не относящихся к проекту, и не сохраненных в репозитории, можно воспользоваться командой:
git clean -df
Создание репозитория на Github
Все действия до этого раздела производились над локальным репозиторием, который находится у вас на компьютере. Если мы хотим сохранить проект в Интернете, и предоставить к нему доступ, то создадим репозиторий на Github.
1. Регистрируемся на сайте: github.com под именем nikname (может быть любым другим).
2. Нажимаем кнопочку «+» и вводим название репозитория.
3. Выбираем тип Public (Private доступен только в платной версии).
4. Нажимаем Create.
В результате создан репозиторий в Github (на экране видим инструкцию, по соедининению локального репозитория со вновь созданным).
5. Добавляем удаленный репозиторий (по протоколу SSH) под именем origin (желательно использовать его, но можно любое другое, главное – не master – оно используется в момент релиза версии).
git remote add origin git@github.com:nikname/project.git
Результат можно увидеть с помощью команды:
git remote -v
Если все правильно сделано, то увидим:
origin git@github.com:nikname/project.git (fetch) origin git@github.com:nikname/project.git (push)
Для отмены регистрации удаленного репозитария, введите:
git remote rm origin
Этой командой вносятся все изменения, которые были сделаны в локальном репозитории на Github:
git push -u github master
-u ключ установления связи между удаленным репозиторием github и веткой master. Все дальнейшие изменения переносятся на удаленный репозиторий следующей командой: git push
Полезные ресурсы
- Более подробно про Git можно прочитать в книге Скотта Чакона и Бена Штрауба — Pro Git
- За помощью с работой в Github переходим на сайт.
Теги: git, github