GitHub - установка и работа

github




GitHub — самый крупный веб-сервис для хостинга IT-проектов и их совместной разработки.


Вначале регистрируемся на GitHub.


Вводим данные и нажимаем большую, зелёную кнопку.




На следующей странице нажимаем




Далее жмём + New repository





Здесь придумываем название для репозитория и жмём



Если хотите приватный реп (видимый только Вам), то придётся платить денежки.
Файл README по желанию, хотите создайте, хотите не создавайте.





Оказываемся на вот такой страничке, и нажимаем SSH:



Теперь нужно добраться до формы для ввода ssh-ключа. В правой колонке нажимаем Settings




Нажимаем Deploy keys






Нажимаем Add deploy keys






Далее нам нужно установить Git на компьютер и создать ключи.

Открываем терминал и устанавливаем Git:

sudo apt-get install git


Создаём ключи:

ssh-keygen -t rsa -C "istarik.std@yandex.ru"

Почтовый адрес укажите тот, который вводили при регистрации на github.
На все вопросы нажимайте Enter.



Ключи готовы.

Сообщаем о ключе ssh-агенту:

ssh-add ~/.ssh/id_rsa





Идём в папку ~/.ssh (она скрытая), находим файл id_rsa.pub, открываем его текстовым редактором, копируем содержимое, вставляем его в поле Key и жмём кнопку Add Key.


Title можно не заполнять, а галку надо поставить.




Готово.





Кликаем на myrepo и видим знакомое окно:






Осталось совсем немного. Нужно указать локальной системе git имя пользователя и email, которые указавали при регистрации.

Возвращаемся в терминал и даём следующие команды: (их можно выполнить, находясь в любом каталоге)

git config --global user.name "istarik"

git config --global user.email istarik.std@yandex.ru




Переходим в папку с проектами, которые Вы собираетесь хранить на Github: (работа с github ведётся из конкретной папки)

cd /home/USER/myproject

У Вас разумеется своя папка.


И даём команды, которые предлагает github:



Команда echo "# myrepo" >> README.md необязательна, а git add README.md изменим на git add * .

Инициализируем репозиторий:

git init


Добавляем всё файлы находящиеся в папке:

git add *


Делаем коммит с названием «first commit»

git commit -m "first commit"


Указываем путь к Вашему репозиторию: (замените istarik/myrepo на своё)

git remote add origin git@github.com:istarik/myrepo.git


Заливаем файлы в основную ветку:

git push -u origin master

На вопрос ответьте yes


Ну вот, Вы и «запушили» свои файлы на github.




Обновите страничку и увидите результат:






Теперь надо разобраться с командами


Клонировать репозиторий

Скопировать репозиторий расположенный на github, к себе на компьютер. (Например Вы решили присоединиться к разработке чьего-либо проекта.)

cd /home/USER/myproject2

git clone git@github.com:istarik/myrepo.git

В папке myproject2 появятся файлы из репозитория.




Добавить изменённый файл


Предположим Вы сделали какие-либо изменения в файле file.c и хотите отправить его в репозиторий.

Добавление изменений в индекс — «коммит»:
Индекс — это список сделанных изменений, на основании которого, программа git выполняет операции.

git commit -a

Откроется текстовый редактор, с предложением сделать пометку. Напишите что-нибудь типа 'second commit' и закройте редактор.

Чтоб редактор не открывался, пометку можно сделать и так:

git commit -a -m "second commit"


Отправляем файл в репозиторий — «пушим»:

git push



Пометка присваивается только изменённым файлам.




Добавить новый файл

Если у Вас появились новые файлы, то чтоб добавить их всех вместе, нужно дать команду:

git add *

В индекс добавятся все новые файлы.

А чтоб добавить выборочно, то команда такая:

git add file.txt

git add hello.php


Потом коммитим:

git commit -a -m "New file"


И пушим:

git push








Удалить файл из репозитория

git rm file.txt

git commit -a -m "Del file"

git push

На диске файл останется.




Текущее состояние репозитория (изменения, неразрешенные конфликты и тп):

git status





Обновление данных из репозитория

Если Вы занимаетесь совместной разработкой проекта, и Ваш коллега что-то менял в нём, то чтобы эти изменения появились на Вашем компьютере, надо сделать pull.

git pull

Данная команда получает обновленную версию из удаленного репозитория текущей ветки, при этом она проверяет на наличие различных проблем при объединении репозиториев и сообщает об этом.




История изменений

Чтобы посмотреть историю всех изменений, надо скомандовать:

git log


Или для конкретного файла:

git log file.c


С просмотром сделанных изменений:

git log -p file.c


С именами файлов и псевдографическим изображением:

git log --stat --graph


Изменения, сделанные в заданном коммите:

git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4

Хэш смотреть в git log

Кем в последний раз правилась каждая строка файла:

git blame file.c





Откатиться к конкретному коммиту

git reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4

Хэш смотреть в git log

То же самое, но файлы на диске остаются без изменений:

git reset --soft d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4





Ветки

Работать с ветками, стоит начинать после того, как наберётесь опыта.

Допустим Вы хотите сделать некоторые изменения в проекте, однако не уверены, выйдет ли из этого что-то хорошее.

В таких случаях нужно создать новую ветку:

git branch vetka



И перейти в неё:

git checkout vetka

Теперь что бы Вы не делали, это не затронет основную ветку — master.


Если вышло что-то хорошее, мерджим ветку в master.

git commit -a

Коммит всех изменений в vetka.


git checkout master

Переключаемся на master.


git merge vetka

Мерджим ветку.


Если ничего хорошего не вышло, возвращаемся к основной ветке:

git checkout master



Замерджить все ветки локального репозитория на удаленный репозиторий: (merge — операция слияния разных версий)

git push origin

origin — имя основного репозитория.

Аналогично предыдущему, но делается пуш только ветки master:

git push origin master

master — имя основной ветки репозитория. (о ветках ниже)

Запушить текущую ветку, не вводя целиком ее название:

git push origin HEAD





Получить список веток, с которыми работаем

git branch

Звездочкой будет отмечена текущая ветвь.


Просмотреть все существующие ветви:

git branch -a


Удалить ветку (после мерджа):

git branch -d vetka


Просто удалить ветку:

git branch -D vetka





Обновление веток репозитория

Обновить все ветки из удаленного репозитория:

git pull origin


Обновить основную ветку из удаленного репозитория:

git pull origin master





Разрешение конфликтов (когда оные возникают в результате мерджа):

git mergetool


Создание тэга:

git tag some_tag

За тэгом можно указать хэш коммита.


Удаление untracked files:

git clean -f


«Упаковка» репозитория для увеличения скорости работы с ним:

git gc





Файл .gitignore

Создайте в папке с Вашими проектами файл .gitignore и впишите в него то, что не хотите выкладывать в репозиторий.

Например в него можно записать вот такие строки:

*.txt
*.exe

Файлы с расширением txt и exe, не будут никуда отправляться.



На этом пожалуй всё.

В статье использованы материалы с сайта eax.me


  • +426
  • 12417
Поддержать автора




Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.