Установка GitHub Desktop и его базовое использование
Так как эти темы довольно обширные, в статье рассмотрим их обзорно, с минимально необходимой информацией, для общего понимания и базовой работы с GitHub Desktop.
Git (произносится «гит») — распределённая система управления версиями.
Система управления версиями — определение из Wikipedia
Система управления версиями (от англ. Version Control System, VCS или Revision Control System) — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.
Если мы верстаем или программируем, не используя систему Git, то в нашем распоряжении только тот код, который пишем сейчас.
При использовании системы Git мы запоминаем версии кода на нужных нам этапах. Имеем доступ к ранним версиям. Можем смотреть изменения, которые были сделаны между версиями. Можем отменить изменения до любой из версий.
В статье часто будем использовать термин Git, чтобы проще было понять, представим, что Git это условная “записная книжка”, в которую будем записывать, какие изменения происходят в нашем проекте. Добавили файл — записываем, что файл добавлен. Изменили файл — записываем изменения, которые были сделаны в файле. Удалили файл — записываем что файл был удален. И все эти записи храняться в “записной книжке” Git
Технически Git для проекта — это скрытая папка .git в папке вашего проекта. Скрытая папка .git содержит служебные файлы, которые нельзя изменять и удалять
У Git много возможностей, но на данный момент рассматриваем только базовые
Создание SSH-ключей под Linux
Первоначально необходимо создать (если их еще нет) ssh-ключи, которые будем использоваться для авторизации на GitHub. В системе Linux такие ключи расположены в домашней директории пользователя и выглядят примерно так:
Один из этих ключей — это приватный ключ, который должен храниться только у пользователя. Другой ключ — это публичный ключ, который предоставляется всем и который я отправлю на GitHub. Представленные выше имена ключей являются создаваемыми по умолчанию, но можно указать и свои собственные.
Если показанная выше команда “скажет” вам, что директории не существует, то это означает, что у вас с системе установлен пакет SSH, отвечающий за создание и обработку ssh-ключей.
Создание аккаунта на GitHub
Тут ничего сложного — понадобится имя пользователя, электронная почта и пароль.
После этого надо создать репозиторий на GitHub (create project). Он будет доступен по адресу:
То есть если мы зарегистрируемся с логином javakitt и создадим репозиторий example, то он будет доступен по адресу:
Теперь есть два варианта:
- Склонировать только что созданный пустой репозиторий себе на компьютер и начать в нем работать, то есть добавлять в него файлы и фиксировать изменения.
- Или наоборот, в том случае, если файлы у вас уже есть: инициализировать в своей рабочей папке репозиторий, а потом отправить его на GitHub.
Оба эти варианты расписаны на сайте — сразу после создания репозитория GitHub выдает страницу с командами, годными для каждого случая.
Мы рассмотрим второй вариант (вдруг у вас уже есть файлы).
Клонируйте удаленный репозиторий с другим именем
Команда clone для копирования удаленного репозитория в локальный репозиторий с тем же именем была показана в предыдущем примере. Использование команды clone для создания локального репозитория из удаленного репозитория с другим именем показано в этой части этого руководства. Выполните следующую команду, чтобы создать локальный репозиторий с именованными django-tutorials путем клонирования удаленного репозитория с именем Django.
$ git clone https: // github.com / fyc21 / Django django-tutorials
Следующий вывод показывает, что локальный репозиторий с именем django-tutorials создается из удаленного репозитория с именем Django.
28 Answers 28
This worked for me:
git clone https://username@github.com/username/repo_name
thanks for this. But I’m oblivious as to why this works. Was never prompted for a password. Should git clone via https in any way touch my ssh keys? I thought not.
@diimdeep Git and other tools, often use the git: protocol for accessing files in remote repositories. Some firewall configurations are blocking git:// URLs, which leads to errors when trying to clone repositories or download dependencies. (For example corporate firewalls are «notorious» for blocking git:.) If you run into this issue, you can force the use of https: instead, by running the following command: git config —global url.»https://».insteadOf git://
In some cases, if you are prompted for a password and then denied access, it may be because you need to provide a «personal access token» instead of your GitHub login password. [1] help.github.com/articles/which-remote-url-should-i-use [2] help.github.com/articles/…
Private clone URLs take the form git@github.com:username/repo.git — perhaps you needed to use git@ rather than git:// ?
git:// URLs are read only, and it looks like private repos do not allow this form of access.
Yes — using «git@github.com:» rather than «https://» solved my problem! Actually I enabled 2FA at the same time but that had nothing to do with it.
I have met this issue several times and every time I landed on this page, tried every thing and failed!
It’s because I have 2FA enabled.
If you have enabled two-factor authentication, or if you are accessing an organization that uses SAML single sign-on, you must provide a personal access token instead of entering your password for HTTPS Git.
- Follow this link and create an access token
- git clone https://github.com/username/repo_name.git (The default git repo link is good enough!)
- Enter your username and use the access token as password!!
- If you don’t mind exposing your access token in the command line, you can also paste the access token as username then hit enter enter (no need for password).
- Hate copy&pasting the access token over and over again?
Use git config credential.helper store (don’t do this on machine you don’t trust)
If you are on Windows you can install github.com/microsoft/Git-Credential-Manager-for-Windows Then when cloning a private repository, UI window with Github login appear. It will also let you fill 2FA code. Your Github credentials will be stored securely.
Thank you for this, another way is to set the url format like this: https://username:access_token@github.com/username/repo_name.git it’s helpful for me if I have public repo that changed to private. All I need to do is to change the remote origin with that format.
This worked for me:
this is problematic with special character passwords, leaves your password in the logs and doesn’t seem to work anymore
Try this — You will be prompted to enter your account password. No worries of password learking to history or logs. git clone https://username@github.com/username/repo_name.git
Authentication using passwords will be depreciated on August 13, 2021 and will no longer work after that. github.blog/…
This will still work if you use a Personal Access Token, and can easily be scripted to prompt for a token ( read -s ).
Как перенести новый проект клиента в свой git?
В том случае, если проект редактировался напрямую через ftp или ssh, то требуется обновить версию проекта, размещенного на git. Для этого необходимо выполнить следующие шаги:
- Необходимо получить исходные файлы проекта, путем скачивания через FTP-клиент на свой компьютер.
- Необходимо получить базу данных проекта. Обычно выкачивается через через PhpMyAdmin, через SSH командой mysqldump или с помощью поддержки системного администратора (можно уточнить у Менеджера).
- Далее нужно сообщить Менеджеру, чтобы он создал новый репозиторий в GitLab для данного проекта.
- Далее клонируем пустой репозиторий к себе на локальный компьютер, например, в папку C:Projectsfoobar с помощью команды ‘git clone полный-путь-до-репозитория.git ’.
- Скачанный проект нужно поместить в папку с клонированным пустым репозиторием (который находится, например, в папке C:Projectsfoobar).
- Создать файл .gitignore и указать там необходимые файлы и директории, которые не должны попасть в git.
- Далее нужно отправить в гит файлы проекта, выполнив команду “git push origin master”.
- Далее нужно запросить у Менеджера доступный для это проекта домен (или поддомен) для разработки, а также доступы к SSH сервера, доступы для подключения к СУБД и выделенную базу данных для этого проекта, на котором будет вестись доработка проекта или обычное расположение.
- Необходимо зайти на сервер под полученными доступами SSH
- Начать развертывание проекта из git.
- Перейти в указанную Менеджером папку с поддоменом с помощью команды cd (обычно cd var/www/site.ru).
- Сгенерировать и настроить deploy keys (см. пункт 1).
- Выполнить команду ‘git clone полный-путь-до-репозитория.git ’.
- Заказать на сервер дамп базы данных с помощью команды scp с указанием размещения на сервере пути для дампа БД (она похожа на команду ssh).
- Развернуть дамп БД на сервере выполнить mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql.
- Если проект основан на фреймворке (Yii2, Symfony ¾, Laravel, Zend или другой), то необходимо подтянуть зависимости PHP пакетов (расширений).
- Нужно установить composer.phar в папку проекта, выполнив команды, указанные по этому адресу https://getcomposer.org/download/.
- Выполнить команду composer.phar update.
- Загрузить файлы и директории, которые ранее добавили в .gitignore.
- Проверить работоспособность проекта, пройдя по поддомену/домену.
Что такое пуш и пулл (git push, git pull)
Чтобы отправить данные из своего проекта на сервер, используют gut push. Для этого программист указывает имя ветки, в которую хочет отправить свой код, а сервер их принимает, проверяет и добавляет к себе.
Иногда бывает так, что сервер отказывается это сделать, потому что у программиста на компьютере была неактуальная ветка. За то время, пока он писал свои правки, другие программисты сделали несколько изменений, закоммитили их у себя и отправили на сервер. Получилось, что у одних эта ветка осталась свежей и актуальной, а у других она устарела. Чтобы не принимать запросы из устаревших веток, гитхаб просит сначала обновить данные у себя на комьютере с помощью git pull.
Пулл работает просто: он скачивает с сервера актуальную версию ветки и добавляет код оттуда вам на компьютер. Иногда этот код вступает в противоречие с тем, что уже успел сделать программист, и тогда возникает конфликт — нужно принять решение, какая версия одинакового кода останется в проекте, а что нужно будет убрать.
Создайте учетную запись GitHub
Вам не нужна учетная запись GitHub для просмотра кода и клонирования репозиториев, но всё же стоит зарегистрироваться. Только с вашей собственной учетной записью и пространством вы можете хранить свои собственные файлы и разветвлять другие проекты, подписываться на других участников и помечать репозитории для легкого доступа позже.
GitHub можно использовать совершенно бесплатно и он не требует наличия учетной записи Microsoft.
Учётная запись GitHub также позволяет вам использовать часто упускаемое из виду приложение – терминал GitHub CLI , которое из-за некоторых изменений в том, как GitHub позволяет аутентифицировать учетные записи, на самом деле то, что вам нужно. Подробнее об этом позже.
Вам не обязательно взаимодействовать с GitHub через терминал, но во многих случаях это наиболее эффективный рабочий процесс. В качестве альтернативы есть настольное приложение GitHub для Windows, Mac и Linux, если вы предпочитаете что-то с графическим интерфейсом.
Но, в этом руководстве мы сосредоточимся на терминале. Это не страшно, обещаю!
Сборка завершена
Шаги по сборке из исходного кода обычно просты:
Ознакомьтесь с инструкциями по сборке в репозитории.
Убедитесь, что у вас установлены необходимые инструменты, и установите все, что отсутствует.
Клонируйте репозиторий на свой компьютер.
Следуйте инструкциям по сборке, которые зачастую так же просты, как ввод make.
Скопируйте файл (ы) в нужные места.Если в инструкциях по сборке есть непонятные шаги, посмотрите, есть ли у проекта форум или сообщество, в которое вы можете отправить вопрос. Если у приложения есть веб-сайт, у них может быть страница «Свяжитесь с нами». Электронная почта разработчика, поддерживающего проект боксов, находится на странице «О программе» сайт коробки . Это щедрый жест с его стороны, типичный для более широкого сообщества разработчиков ПО.