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/myproject2git 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.txtgit add hello.phpПотом коммитим:
git commit -a -m "New file" И пушим:
git push
Удалить файл из репозитория
git rm file.txtgit 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 originorigin — имя основного репозитория.
Аналогично предыдущему, но делается пуш только ветки master:
git push origin mastermaster — имя основной ветки репозитория. (о ветках ниже)
Запушить текущую ветку, не вводя целиком ее название:
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
- stD

22199
Поддержать автора


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