Перейти к содержанию

GitHub для самых маленьких


Рекомендуемые сообщения

Регистрация на GitHub

 

 

Открываем https://github.com/ и жмем Sign up для регистрации

J0yliIRlVUo.jpg?size=1248x608&quality=95

 

Вписываем наше мыло, пароль, юсернейм/ник/логин и прожимаем Continue. Потом он нас спросит, хотим ли мы получать всякую рассылку на почту? пишем в ответ n

09tLq4pixFU.jpg?size=1248x662&quality=95

 

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

QiWxb5YNt-o.jpg?size=633x428&quality=95&

64vsU40ofs4.jpg?size=651x425&quality=95&

GX25PA6vdYY.jpg?size=666x430&quality=95&

 

Нажимаем Create account и у нас появится поле для ввода кода

X3QZIBy_D9o.jpg?size=651x473&quality=95&

n9HhIPyOQog.jpg?size=610x306&quality=95&

 

В новой вкладке браузера открываем нашу почту и ручками вводим код в поле. Если возникли проблемы с вводом кода, то воспользуйтесь ссылкой из письма.

9qsorNP6Agc.jpg?size=959x762&quality=95&

 

После подтверждения регистрации, гитхаб предложит сделать персонализацию, но мы этого делать не будем и нажмем Skip personalization

89IlJziOUV0.jpg?size=1277x875&quality=95

 

Все, регистрация окончена и у нас открывается наш дашбоард, в котором мы будем видеть информацию по отслеживаемым проектам

bncB7-qYvw8.jpg?size=1253x829&quality=95

 

 

 

Ссылка на комментарий

Настройка уведомлений

 

 

Если мы нехотим чтобы наш почтовый ящик засрало уведомлениями, то идем в Настройки

6XcKg0XqH58.jpg?size=1259x569&quality=95

 

Переходим к Уведомлениям

qDhdcV50ces.jpg?size=1267x889&quality=95

 

Выставляем галки как на скриншотах

cxHZX_N_q5c.jpg?size=1261x903&quality=95

_W4vsCPUxCY.jpg?size=1245x787&quality=95

 

 

 

Ссылка на комментарий

Работа с issues

 

 

Переходим на странице проекта в issues

fgFCUPM3Pf8.jpg?size=1256x732&quality=95

 

и нажимаем New issue

gDHdrWyNi5k.jpg?size=1254x653&quality=95

 

Перед нами появится список заготовленных шаблонов для оформления нашей темы/багрепорта, просто читаем описания и выбираем подходящий. Шаблонов может и не быть у проекта и вам придется самим как-то оформлять.

NVQXA2Zhczo.jpg?size=1252x581&quality=95

 

После выбора шаблона, перед нами появилось окно со строками из шаблона.

-u1XeJE8cqM.jpg?size=1252x773&quality=95

 

Далее мы заполняем все что от нас просят и прикрепляем файлы кликая в обведенное место. Заполнять желательно на Английском языке, но если тема крайне сложная и с большим объемом текста, то можно и на родном языке писать. Если будете вставлять ссылки на сторонние сайты содержащие пиратский контент, то вставляйте ссылку как кусок кода между двух грависов `h t t p s://rutracker.org/`

grVnT0Cr-GI.jpg?size=1254x734&quality=95

 

Нажимаем Preview для проверки нашей деятельности и если все устраивает нажимаем Submit new issue. Периодически проверяйте свою тему/багрепорт, у разработчиков могут быть вопросы к вам.

MWyYxOnlkT4.jpg?size=1261x913&quality=95

 

 

 

Ссылка на комментарий

Описание элементов интерфейса

 

  • Страница проекта, состоит из имя_владельца/название_репозитория
  • Откуда был форкнут(скопирован) проект, состоит из имя_владельца/название_репозитория
  • Клик на Watch открывает настройки отслеживания проекта, клик на значение показывает тех кто отслеживает проект
  • Клик на Star добавляет проект в закладки на случай если вы планируете сюда еще вернуться, клик на значение показывает тех кто добавил себе в закладки
  • Клик на Fork создает копию проекта с вашим именем и полными правами доступа, клик на значение показывает дерево форков в котором вы можете понять кто и у кого скопировал
  • Вкладка Code отображает ветки, теги, файлы, коммиты, описание проекта
  • Вкладка Issues отображает минифорум на котором постятся багрепорты, предложения по улучшению и задаются вопросы разработчикам. Иногда разработчики используют Issues как систему тикетов и планов на будущее в разработке.
  • Вкладка Pull requests отображает запросы на внесение изменений в проект и сами изменения
  • Вкладка Discussions отображает полноценный форум, но он нигде практически не используется, так как всем хватает Issues
  • Вкладка Actions отображает магию с запуском виртуалок в которых автоматически происходит тестирование, компиляция и сборка проекта
  • Вкладка Projects отображает тикеты и планы по разработке, но обычно для подобных целей используют Issues
  • Вкладка Wiki отображает документацию к проекту, при условии что разрабы не забили болт на это дело
  • Вкладка Security отображает политики безопасности для проекта, также там происходит анализ, поиск опасных кусков кода и дырявых зависимостей
  • Вкладка Insights отображает графики, статистику, деревья форков и зависимостей
  • Вкладка Settings отображает настройки проекта, права доступа, смену владельца и удаление проекта
  • branches это ветки проекта, обычно основной и стабильный код содержится в ветке master или main, а эксперементальный код в dev, develop, experimental. Бывает что и по другому эти ветки используют.
  • tags обычно используются для обозначения версии при публикации новых релизов, но если очень хочется то можно отмечать ими интересные коммиты(изменения?)
  • about краткое описание проекта, может содержать в себе "топики" для поиска схожих проектов
  • В этом блоке мы можем увидеть количество коммитов(изменений?) которое отличает наш форк(копию) от апстрима(оригинала). Через Сontribute мы можем сделать Pull request(запрос на внесение изменений) и отправить наши коммиты(изменения?) в апстрим(оригинал) или в другой бранч(ветку). Через Fetch upstream мы можем перенести коммиты(изменения?) из апстрима(оригинала) в наш форк(копию)
  • В этом блоке мы видим пользователя сделавшего последний коммит в проект, кликабельный заголовок коммита, правее идет кусок хеша коммита и дата
  • commits при клике отобразит коммиты для данного баранча(ветки) проекта с момента его создания
  • Каталоги и файлы проекта. Два основных файла у проекта это LICENSE.md и README.md, расширение .md означает разметку markdown. Шаблоны для Issues и конфиги для Actions находятся в каталоге .github
2lZ_t23bXJs.jpg?size=1259x819&quality=95

 

 

 

Ссылка на комментарий

Создаем и удаляем fork(копию) проекта

 

 

На странице проекта с которым мы планируем работать, нажимаем Fork

SftN9Q65ITc.jpg?size=1241x819&quality=95

 

Ждем несколько секунд

Fe3w7EZYi8o.jpg?size=1267x533&quality=95

 

Все, мы сделали fork(копию) проекта и можем вносить в него изменения. Обратите внимание что у нашей копии отсутствует вкладка Issues

ARaXOP0l5Fc.jpg?size=1255x827&quality=95

 

Для удаления нашего forka(копии) переходите на вкладку Settings, отматывайте страницу в самый низ и нажимайте Delete this repository

pssSrVHMTKI.jpg?size=1251x777&quality=95

 

Скопируйте в поле имя_владельца/название_репозитория и подтвердите что хотите удалить репозиторий

KiSENx5ND_I.jpg?size=1241x801&quality=95

 

 

 

Ссылка на комментарий

Редактируем файлы через веб интерфейс GitHuba

 

 

Находим в каталогах нашего форка файл/скрипт который хотим отредактировать и нажимаем на значек карандашика

YFvrQvN70ck.jpg?size=1253x891&quality=95

 

Вносим правки и проверяем результат в Preview changes. Если нас все устраивает, то заполняем заголовок и описание Commit changes на Английском, можно еще добавить ссылку на тему в Issues. После того как закончили редактировать и оформлять, нажимаем Commit changes

J1ctvBmHUP0.jpg?size=1253x913&quality=95

 

Если мы в коммит вставили ссылку на тему в Issues, то там появится вот такое упоминание

HTnpmXCdCq8.jpg?size=1245x773&quality=95

 

 

 

Ссылка на комментарий

Делаем pull request(запрос на внесение изменений)

 

 

После того как мы наделали правок в нашем форке и считаем что решили одну проблему или баг, нажимаем Contribute и Open pull request

AEzVRGeb7LA.jpg?size=1257x811&quality=95

 

Перед нами Comparing changes, мы можем выбрать направление пуллреквеста в Base Repository из Head Repository, стрелочка между ними подсказывает направление. Оставляем все как есть и убеждаемся что появилась надпись Able to merge. These branches can be automatically merged. которая означает что никаких проблем не должно возникнуть. Нажимаем Create pull request

eYPf7EUX7Ag.jpg?size=1243x913&quality=95

 

Видим форму Open pull request в которую вставился текст из нашего коммита. Если тема в Issues отсутствует для даных правок, то прикрепите сейвы чтобы можно было проверить результат до и после. Нажимаем Create pull request. Ваши правки могут отклонить по разным причинам, но основная причина это небольшие проблемы с тем что правки надо делать в два репозитория UPU и RPU

BHkCODCZNgA.jpg?size=1241x917&quality=95

 

Если мы в пуллреквест вставили ссылку на тему в Issues, то там появится вот такое упоминание. Рекомендую вставлять ссылку только в пуллреквест, так вы не засорите тему упоминанием коммитов из вашего временного форка.

u-Bjff4yr3Q.jpg?size=1241x781&quality=95

 

 

 

Ссылка на комментарий

Устанавливаем Git for Windows Portable и TortoiseGit

 

 

Скачиваем 64-bit Git for Windows Portable https://git-scm.com/download/win и запускаем установщик от админа

eU7xIiJ3DrA.jpg?size=625x401&quality=95&

 

Проверяем путь установки и нажимаем ОК

dpVQYCFPn24.jpg?size=356x159&quality=95&

 

 

 

Скачиваем 64-bit TortoiseGit https://tortoisegit.org/download/ запускаем установщик и жмем Next

R6d1-F8v7Xc.jpg?size=495x387&quality=95&

 

Жмем Next

Td1Yvk-u8eE.jpg?size=495x387&quality=95&

 

Жмем Next

CG0KnPr1Yng.jpg?size=495x387&quality=95&

 

Жмем Install

hVFu8JnL8pU.jpg?size=495x387&quality=95&

 

Жмем Finish

22-rESqpMdg.jpg?size=495x387&quality=95&

 

Жмем Далее

23viLiPPWnI.jpg?size=506x470&quality=95&

 

Жмем Далее

UW0EiDsft1E.jpg?size=506x470&quality=95&

 

Проверяем путь к Git\bin, жмем Check now и жмем Далее

BX92dfSCBGs.jpg?size=506x470&quality=95&

 

Ставим чекбокс на Don't store these settings now и жмем Далее

tMnG8VpGKnQ.jpg?size=506x470&quality=95&

 

Жмем Готово и советую перезагрузить компьютер

44OF_j4O_sI.jpg?size=506x470&quality=95&

 

 

 

Ссылка на комментарий

настолько банальные вещи, что тошно смотреть, особенно вот про установку)).

Ну а что поделаешь, я уже давал небанальный гайд кое-кому и это не дало результатов. Про git portable от тебя узнал, а изначально хотел про тот хитровыебнутый инсталлятор делать гайд. Небанальные вещи будут после вопросов в этой теме

Ссылка на комментарий

Делаем git clone


На странице нашего форка жмем кнопку Code и копируем https ссылку
NfMJ2knJj-4.jpg?size=1255x823&quality=95

В отдельном каталоге открываем контекстное меню правой кнопкой мыши и нажимаем Git Clone
r-DZEn28mcU.jpg?size=774x572&quality=95&

Проверяем что ссылка из буфера обмена вставилась в URL поле открывшегося окна и нам предложили подходящий каталог, после чего нажимаем ОК
hIGd0GGu4S0.jpg?size=630x441&quality=95&

Ждем когда все скачается
aaX37La4HwM.jpg?size=581x386&quality=95&

При успешном завершении закачки, мы увидем чтото вот такое
o166wQytUbI.jpg?size=581x386&quality=95&

 

Ссылка на комментарий

Делаем первый git commit

 

 

После правок файлов в нашей локальной копии проекта, открываем контекстное меню правой кнопкой мыши у каталога и нажимаем Git Commit

BdisQSKgFq0.jpg?size=781x797&quality=95&

 

И внезапно TortoiseGit ругается сообщая нам что надо прописать username и email, так как они являются частью коммитов. Просто нажимаем Да

ee104DRJ9A8.jpg?size=343x152&quality=95&

 

Тут нам рассказывают про локальные(для репозитория), глобальные(для пользователя) и системные(для всех пользователей) конфиги. Просто нажимаем ОК

SeVDQh1zByI.jpg?size=352x223&quality=95&

 

Вписываем наш GitHubовский username и email, а потом прожимаем Применить и ОК. Тут вы можете заметить те самые Local, Global, System. Советую использовать Global, так вам не придется повторно прописывать username и email при работе с другими репозиториями

4TYV0jZqZH4.jpg?size=773x628&quality=95&

 

Заполняем заголовок и описание коммита на Английском и нажимаем Commit

5fPaV7YbbPU.jpg?size=685x606&quality=95&

 

Жмем Close

D9nV8iouEns.jpg?size=581x386&quality=95&

 

 

 

Ссылка на комментарий

Делаем первый git push


После того как наделали коммитов, открываем контекстное меню в каталоге проекта и нажимаем Push
PcBLoranl3A.jpg?size=781x803&quality=95&

Тут оставляем все как есть и нажимаем ОК
rH3wCPJCoFU.jpg?size=546x551&quality=95&

Но тут вместо отправки наших коммитов на GitHub, нас просят авторизоваться. Выбираем manager-core
ad89kEHJb8E.jpg?size=386x473&quality=95&

Жмем Sign in with your browser
qsO0pbQPhqE.jpg?size=414x363&quality=95&

Жмем Authorize
skaW_lQ881Y.jpg?size=1269x875&quality=95

Подтверждаем введением пароля
vQGl6Ew4aqY.jpg?size=1275x579&quality=95

Закрываем вкладку после успешной авторризации
KBv1LbePUGI.jpg?size=1275x503&quality=95

Нашм коммиты отправились на GitHub, нажимаем Close
iaJvDQihVCY.jpg?size=581x386&quality=95&

Можем сходить на GitHub и проверить результат
5_PUnERNcEY.jpg?size=1251x589&quality=95

 

Ссылка на комментарий

Удаляем коммиты

 

 

Последовательное удаление коммитов с конца(рекомендуемый вариант)

Например у нас вот такая ситуация и мы хотим удалить два последних коммита(пятый и четвертый)

VbwxLBPOyms.jpg?size=1245x881&quality=95

 

Для начала сделаем git pull и выкачаем все изменения с GitHubа

Bu3F599WvuU.jpg?size=781x809&quality=95&

 

Оставляем все как есть и нажимаем ОК

Ra48LIjPC5c.jpg?size=574x450&quality=95&

 

Все удачно скачалось, нажимаем Close

_4Rw0A5_5Uo.jpg?size=581x386&quality=95&

 

Нажимаем Show log

nTZ8V3iVZnc.jpg?size=777x801&quality=95&

 

Открываем контекстное меню у третьего коммита и выбираем Reset "master" to this

h9rPp9pGRwQ.jpg?size=710x642&quality=95&

 

Выбираем Hard вариант и нажимаем ОК

jmuyZhBn7gg.jpg?size=525x371&quality=95&

 

Процесс успешно завершился, нажимаем Close

QO67WSBy4fs.jpg?size=581x386&quality=95&

 

В логе произошло вот такое

-9QWEqZ3ixw.jpg?size=701x462&quality=95&

 

Делаем git push и в настройках ставим чекбокс known changes

gnhuNCmnVl8.jpg?size=546x551&quality=95&

 

Идем на GitHub и проверяем результат

4XjQu5oLepU.jpg?size=1239x767&quality=95

 

 

 

Удаление отдельного коммита(не рекомендуемый вариант)

К примеру мы хотим удалить второй коммит, открываем Show log и в контекстном меню первого коммита выбираем Rebase "master" onto this

6vcnYEe_ap8.jpg?size=691x604&quality=95&

 

Ставим чекбокс Force Rebase, в контекстном меню второго коммита выставляем Skip и нажимаем Start Rebase

iBHkjHjk3co.jpg?size=732x476&quality=95&

 

Нажимаем Done

HUBFogPNED8.jpg?size=732x476&quality=95&

 

В логе видим вот такое

Vt-W-SgiE3w.jpg?size=681x530&quality=95&

 

Делаем git push и в настройках ставим чекбокс known changes

gnhuNCmnVl8.jpg?size=546x551&quality=95&

 

Идем на GitHub и проверяем результат

mPkvE6uYsYo.jpg?size=1239x773&quality=95

 

 

 

Ссылка на комментарий
Rebase

Удаляется содержимое коммита, или там оно сливается?

 

Вас этот гайд устраивает

мне по барабану

но слишком много постов можно было в несколь засунуть несколько.

Ссылка на комментарий

Удаляется содержимое коммита

Удаляется, конфликты гарантированны если последующие коммиты правят тоже самое место, но в процессе Rebase их можно устранить. Возможно есть другие способы удалять отдельные коммиты, но я не знаток.

 

В твоем случае скорей всего надо чтото вот такое использовать

 

 

n6BVTViZsoM.jpg?size=914x474&quality=95&

 

Ссылка на комментарий

Ну если в общих чертах - когда у тебя есть несколько проектов и какой-то дополнительный проект, общий для всех, либа с утилитами например (в твоем примере - это сборник графических утилит для OpenGl и классов совместимости с разными операционками). И сабмодуль позволяет тебе добавить этот проект как зависимость в твои главные, а не копировать один и тот же код. Смысл в том, что ты можешь менять сабмодуль независимо от главного проекта, т.к. он по факту просто ссылка. Ну и получается, что главный проект и утилитный живут своими отдельными жизнями. Если ты решил апдейтнуть утилиты - меняешь только их, иначе, если бы ты копировал их в каждый проект - пришлось бы апдейты накатывать в каждый копипастой. Второй случай - ты нашел проект некого Васи, в котором он сделал клевые штуки, которые ты бы мог использовать в своем. И аналогично, вместо прямой копипасты его репы в свою ты можешь его добавить сабмодулем.

Короче, это что-то вроде выделения общего функционала в отдельный репозиторий и добавление ссылки на него.

 

Сделать это просто - добавляешь конфиг .gitmodules в корень и туда добавляешь ссылку на другую репу. 
 

https://github.com/nadult/FreeFT/blob/main/.gitmodules

 

"path" - это папка в твоем репозитории, в которую он добавится при скачке, "url" - ссылка на репозиторий для сабмодуля.

По умолчанию после клонирования репозитория папки с сабмодулями будут пустыми - их надо "дозакачивать" отдельными коммандами - 
"git submodule init"

"git submodule update"

 

Также можно сделать клонирование с флагом "--recurse-submodules". В этом случае все сабмодули закачаются сразу, включая сабмодули сабмодулей, если такие будут.

"git clone --recurse-submodules https://github.com/myRepo/bla_bla_bla"

 

 

Работать с сабмодулями можно изнутри главного проекта, но это уже тема для более сложных проектов и для дальнейших конкретных вопросов.

 

P.s. - Если у тебя нет ничего общего для всех твоих проектов - не заморачивайся, если можно что-то вынести - лучше сделать

Ссылка на комментарий

Общее есть.

И приходилось для двух зависимых проектов делать свои комитты.

Хотелось бы одним.

С Субмодулем это возможно? Ато из твоего описания ничего не понятно, или нужно видео пояснения для особо тупых. :-)

Ссылка на комментарий

Да можно. Есть 2 варианта. Возьмем для примера такую ситуацию - у тебя 2 проекта (основные репозитории) и 3-й проект как сабмодуль у них (репозиторий с общим кодом\файлами).

 

Вариант 1 - коммит в репозиторий сабмодуля. После этого в проектах основных надо делать git submodule update, чтобы изменения сабмодуля подтянулись.

Вариант 2 - коммитаешь апдейт сабмодуля изнутри основного проекта. В этом случае во 2-м проекте придется так же делать submodule update, когда будешь в нем работать. Этот вариант требует некоторой дополнительной конфигурации сабмодуля и некоторых доп действий на коммите.

 

Если в проектах не ракетостроение, то я бы рекомендовал остановиться на 1-м варианте. Если надо действительно работать с сабмодулем в основном проекте - могу расписать, как это сделать

Ссылка на комментарий

Про сабмодули ничего рассказать не могу, много видел но никогда не вдавался в детали и воспринимал их как симлинки. @Farvel, вроде доходчиво все объяснил. Вообще знакомство с такими штуками надо начинать с симлинков, хардлинков, рефлинков

Ссылка на комментарий

Руссо-туристо или импортозамещение, пора потихоньку выпиливаться от сраного дяди била)

https://gitflic.ru/

пока сыро-сыро, и не понятно не загнулось ли там развитие (отключили публичные репы).

Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...