You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ru/1-getting-started-lessons/2-github-basics/README.md

71 KiB

Введение в GitHub

Привет, будущий разработчик! 👋 Готов присоединиться к миллионам программистов по всему миру? Я искренне рад познакомить тебя с GitHub представь это как социальную сеть для программистов, только вместо фотографий обедов мы делимся кодом и создаем невероятные вещи вместе!

Вот что меня действительно поражает: каждое приложение на твоем телефоне, каждый сайт, который ты посещаешь, и большинство инструментов, которые ты будешь использовать, были созданы командами разработчиков, сотрудничающих на платформах вроде GitHub. Твое любимое музыкальное приложение? Кто-то вроде тебя внес в него свой вклад. Та игра, от которой ты не можешь оторваться? Да, скорее всего, она была создана с помощью GitHub. А теперь ТЫ научишься быть частью этого удивительного сообщества!

Я понимаю, что сначала это может показаться сложным честно говоря, я помню, как смотрел на свою первую страницу GitHub и думал: "Что это вообще значит?" Но вот в чем дело: каждый разработчик начинал именно с того места, где ты находишься сейчас. К концу этого урока у тебя будет свой собственный репозиторий на GitHub (представь это как личную витрину твоих проектов в облаке), и ты узнаешь, как сохранять свою работу, делиться ею с другими и даже вносить вклад в проекты, которыми пользуются миллионы людей.

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

Введение в GitHub

Скетчноут от Tomomi Imura

journey
    title Your GitHub Adventure Today
    section Setup
      Install Git: 4: You
      Create Account: 5: You
      First Repository: 5: You
    section Master Git
      Local Changes: 4: You
      Commits & Pushes: 5: You
      Branching: 4: You
    section Collaborate
      Fork Projects: 4: You
      Pull Requests: 5: You
      Open Source: 5: You

Предварительный тест

Предварительный тест

Введение

Прежде чем мы перейдем к действительно захватывающим вещам, давай подготовим твой компьютер к магии GitHub! Представь это как организацию своих художественных принадлежностей перед созданием шедевра наличие нужных инструментов делает все намного проще и веселее.

Я лично проведу тебя через каждый этап настройки и обещаю, что это не так уж страшно, как может показаться на первый взгляд. Если что-то сразу не получится, это абсолютно нормально! Я помню, как настраивал свою первую среду разработки и чувствовал себя так, будто пытаюсь расшифровать древние иероглифы. Каждый разработчик был именно там, где ты сейчас, задаваясь вопросом, правильно ли он все делает. Спойлер: если ты здесь и учишься, ты уже на правильном пути! 🌟

В этом уроке мы рассмотрим:

  • отслеживание работы, которую ты делаешь на своем компьютере
  • работу над проектами с другими
  • как вносить вклад в проекты с открытым исходным кодом

Предварительные требования

Давай подготовим твой компьютер к магии GitHub! Не переживай эту настройку нужно сделать только один раз, и ты будешь готов к своему путешествию в мир программирования.

Итак, начнем с основы! Сначала нужно проверить, установлен ли Git на твоем компьютере. Git это как суперумный помощник, который запоминает каждое изменение, которое ты вносишь в свой код намного лучше, чем постоянно нажимать Ctrl+S каждые две секунды (мы все через это проходили!).

Давай проверим, установлен ли Git, введя эту волшебную команду в терминале: git --version

Если Git еще не установлен, не переживай! Просто зайди на скачать Git и установи его. После установки нам нужно правильно познакомить Git с тобой:

💡 Первоначальная настройка: Эти команды сообщают Git, кто ты. Эта информация будет прикреплена к каждому коммиту, который ты сделаешь, поэтому выбери имя и email, которые ты готов публиковать.

git config --global user.name "your-name"
git config --global user.email "your-email"

Чтобы проверить, настроен ли Git, можно ввести:

git config --list

Тебе также понадобится аккаунт на GitHub, редактор кода (например, Visual Studio Code), и нужно будет открыть терминал (или командную строку).

Перейди на github.com и создай аккаунт, если у тебя его еще нет, или войди и заполни свой профиль.

💡 Современный совет: Рассмотри возможность настройки SSH-ключей или использования GitHub CLI для более удобной аутентификации без паролей.

GitHub не единственный репозиторий кода в мире; есть и другие, но GitHub самый известный.

Подготовка

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

Защита твоего кода

Давай поговорим о безопасности но не переживай, мы не будем перегружать тебя сложными вещами! Представь эти практики безопасности как запирание машины или дома. Это простые привычки, которые становятся естественными и защищают твою работу.

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

При работе с GitHub важно соблюдать лучшие практики безопасности:

Область безопасности Лучшая практика Почему это важно
Аутентификация Используй SSH-ключи или персональные токены доступа Пароли менее безопасны и постепенно уходят в прошлое
Двухфакторная аутентификация Включи двухфакторную аутентификацию на своем аккаунте GitHub Добавляет дополнительный уровень защиты аккаунта
Безопасность репозитория Никогда не коммить конфиденциальную информацию API-ключи и пароли не должны быть в публичных репозиториях
Управление зависимостями Включи Dependabot для обновлений Обеспечивает безопасность и актуальность твоих зависимостей

⚠️ Критическое напоминание о безопасности: Никогда не коммить API-ключи, пароли или другую конфиденциальную информацию в любой репозиторий. Используй переменные окружения и файлы .gitignore для защиты данных.

Современная настройка аутентификации:

# Generate SSH key (modern ed25519 algorithm)
ssh-keygen -t ed25519 -C "your_email@example.com"

# Set up Git to use SSH
git remote set-url origin git@github.com:username/repository.git

💡 Совет профессионала: SSH-ключи избавляют от необходимости постоянно вводить пароли и более безопасны, чем традиционные методы аутентификации.


Управление кодом как профессионал

А теперь начинается самое интересное! 🎉 Мы научимся отслеживать и управлять твоим кодом, как это делают профессионалы, и честно говоря, это одна из моих любимых тем для обучения, потому что она действительно меняет подход к работе.

Представь: ты пишешь удивительную историю и хочешь отслеживать каждый черновик, каждую блестящую правку и каждое "Ого, это гениально!" на этом пути. Именно это Git делает для твоего кода! Это как иметь невероятный блокнот-путешественник во времени, который запоминает ВСЕ каждое нажатие клавиши, каждое изменение, каждый момент "ой, все сломалось", который ты можешь мгновенно отменить.

Признаюсь сначала это может показаться сложным. Когда я начинал, я думал: "Почему я просто не могу сохранять свои файлы, как обычно?" Но поверь мне: как только ты поймешь Git (а ты поймешь!), у тебя будет момент озарения, когда ты скажешь: "Как я вообще мог программировать без этого?" Это как открыть для себя способность летать, когда ты всю жизнь ходил пешком!

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

flowchart TD
    A[📁 Your Project Files] --> B{Is it a Git Repository?}
    B -->|No| C[git init]
    B -->|Yes| D[Make Changes]
    C --> D
    D --> E[git add .]
    E --> F["git commit -m 'message'"]
    F --> G[git push]
    G --> H[🌟 Code on GitHub!]
    
    H --> I{Want to collaborate?}
    I -->|Yes| J[Fork & Clone]
    I -->|No| D
    J --> K[Create Branch]
    K --> L[Make Changes]
    L --> M[Pull Request]
    M --> N[🎉 Contributing!]
    
    style A fill:#fff59d
    style H fill:#c8e6c9
    style N fill:#ff4081,color:#fff

Задача: Создай свой первый репозиторий!

🎯 Твоя миссия (и я так рад за тебя!): Мы вместе создадим твой первый репозиторий на GitHub! К тому времени, как мы закончим, у тебя будет свой маленький уголок в интернете, где будет жить твой код, и ты сделаешь свой первый "коммит" (это разработческое слово, означающее сохранение твоей работы очень умным способом).

Это действительно особенный момент ты официально присоединяешься к глобальному сообществу разработчиков! Я до сих пор помню восторг от создания своего первого репозитория и мысль: "Вау, я действительно это делаю!"

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

Посмотри видео

Видео о Git и GitHub

Давай сделаем это вместе:

  1. Создай свой репозиторий на GitHub. Перейди на GitHub.com и найди ярко-зеленую кнопку New (или знак + в правом верхнем углу). Нажми на нее и выбери New repository.

    Вот что нужно сделать:

    1. Дай своему репозиторию имя выбери что-то значимое для тебя!
    2. Добавь описание, если хочешь (это поможет другим понять, о чем твой проект)
    3. Реши, хочешь ли ты сделать его публичным (все смогут его видеть) или приватным (только для тебя)
    4. Рекомендую поставить галочку, чтобы добавить файл README это как главная страница твоего проекта
    5. Нажми Create repository и отпразднуй ты только что создал свой первый репозиторий! 🎉
  2. Перейди в папку своего проекта. Теперь откроем твой терминал (не переживай, он не так страшен, как выглядит!). Нам нужно указать компьютеру, где находятся файлы твоего проекта. Введи эту команду:

    cd [name of your folder]
    

    Что мы здесь делаем:

    • Мы говорим компьютеру: "Эй, открой папку моего проекта"
    • Это как открыть определенную папку на рабочем столе, только мы делаем это текстовыми командами
    • Замени [name of your folder] на фактическое имя папки твоего проекта
  3. Преврати свою папку в репозиторий Git. Вот где начинается магия! Введи:

    git init
    

    Вот что только что произошло (довольно круто!):

    • Git создал скрытую папку .git в твоем проекте ты ее не увидишь, но она там!
    • Твоя обычная папка теперь стала "репозиторием", который может отслеживать каждое изменение
    • Представь, что ты дал своей папке суперспособности запоминать все
  4. Проверь, что происходит. Давай посмотрим, что Git думает о твоем проекте прямо сейчас:

    git status
    

    Понимание того, что говорит Git:

    Ты можешь увидеть что-то вроде этого:

    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
    
         modified:   file.txt
         modified:   file2.txt
    

    Не паникуй! Вот что это значит:

    • Файлы в красном это файлы, которые изменены, но еще не готовы к сохранению
    • Файлы в зеленом (когда ты их увидишь) готовы к сохранению
    • Git помогает, говоря тебе, что ты можешь сделать дальше

    💡 Совет профессионала: Команда git status твой лучший друг! Используй ее всякий раз, когда ты запутался в происходящем. Это как спросить Git: "Эй, какая сейчас ситуация?"

  5. Подготовь свои файлы к сохранению (это называется "стейджинг"):

    git add .
    

    Что мы только что сделали:

    • Мы сказали Git: "Эй, я хочу включить ВСЕ мои файлы в следующее сохранение"
    • . это как сказать "все в этой папке"
    • Теперь твои файлы "стейджированы" и готовы к следующему шагу

    Хочешь быть более избирательным? Ты можешь добавить только определенные файлы:

    git add [file or folder name]
    

    Почему ты можешь захотеть сделать это?

    • Иногда ты хочешь сохранить связанные изменения вместе
    • Это помогает организовать твою работу в логические блоки
    • Упрощает понимание того, что изменилось и когда

    Передумал? Не переживай! Ты можешь убрать файлы из стейджа вот так:

    # Unstage everything
    git reset
    
    # Unstage just one file
    git reset [file name]
    

    Не переживай это не удаляет твою работу, это просто убирает файлы из "готовых к сохранению".

  6. Сохрани свою работу навсегда (сделай свой первый коммит!):

    git commit -m "first commit"
    

    🎉 Поздравляю! Ты только что сделал свой первый коммит!

    Вот что только что произошло:

    • Git сделал "снимок" всех твоих стейджированных файлов в этот момент
    • Твое сообщение о коммите "first commit" объясняет, о чем эта точка сохранения
    • Git присвоил этому снимку уникальный ID, чтобы ты всегда мог его найти
    • Ты официально начал отслеживать историю своего проекта!

    💡 Будущие сообщения о коммитах: Для следующих коммитов будь более описательным! Вместо "обновил что-то" попробуй "Добавил контактную форму на главную страницу" или "Исправил баг в меню навигации". Твое будущее "я" скажет тебе спасибо!

  7. Подключи свой локальный проект к GitHub. Сейчас твой проект существует только на твоем компьютере. Давай подключим его к твоему репозиторию на GitHub, чтобы ты мог поделиться им с миром!

    Сначала зайди на страницу своего репозитория на GitHub и скопируй URL. Затем вернись сюда и введи:

    git remote add origin https://github.com/username/repository_name.git
    

    (Замени этот URL на фактический URL твоего репозитория!) Что мы только что сделали:

  • Мы создали связь между вашим локальным проектом и репозиторием на GitHub.
  • "Origin" — это просто прозвище для вашего репозитория на GitHub, как добавление контакта в телефон.
  • Теперь ваш локальный Git знает, куда отправлять ваш код, когда вы готовы его поделиться.

💡 Проще способ: Если у вас установлен GitHub CLI, вы можете сделать это одной командой:

gh repo create my-repo --public --push --source=.
  1. Отправьте ваш код на GitHub (важный момент!):

    git push -u origin main
    

🚀 Вот оно! Вы загружаете ваш код на GitHub!

Что происходит:

  • Ваши коммиты отправляются с вашего компьютера на GitHub.
  • Флаг -u устанавливает постоянное соединение, чтобы в будущем было проще делать push.
  • "main" — это название вашей основной ветки (как главная папка).
  • После этого вы можете просто вводить git push для будущих загрузок!

💡 Короткая заметка: Если ваша ветка называется иначе (например, "master"), используйте это название. Вы можете проверить с помощью git branch --show-current.

  1. Ваш новый ежедневный ритм кодинга (вот где начинается зависимость!):

Теперь, когда вы вносите изменения в ваш проект, у вас есть простой трехшаговый процесс:

git add .
git commit -m "describe what you changed"
git push

Это становится вашим сердцебиением кодинга:

  • Внесите крутые изменения в ваш код
  • Добавьте их с помощью git add ("Эй, Git, обрати внимание на эти изменения!")
  • Сохраните их с помощью git commit и описательного сообщения (будущий вы скажет вам спасибо!)
  • Поделитесь ими с миром, используя git push 🚀
  • Повторяйте снова и снова — серьезно, это становится таким же естественным, как дыхание!

Мне нравится этот рабочий процесс, потому что он похож на создание множества точек сохранения в видеоигре. Сделали изменение, которое вам нравится? Закоммитьте его! Хотите попробовать что-то рискованное? Без проблем — вы всегда можете вернуться к последнему коммиту, если что-то пойдет не так!

💡 Совет: Возможно, вам также стоит использовать файл .gitignore, чтобы предотвратить появление файлов, которые вы не хотите отслеживать, на GitHub — например, файл с заметками, который вы храните в той же папке, но который не должен быть в публичном репозитории. Вы можете найти шаблоны для файлов .gitignore на шаблоны .gitignore или создать его с помощью gitignore.io.

🧠 Первый репозиторий: как это было?

Возьмите минуту, чтобы отпраздновать и подумать:

  • Каково было видеть ваш код на GitHub впервые?
  • Какой шаг показался самым запутанным, а какой — удивительно простым?
  • Можете ли вы объяснить разницу между git add, git commit и git push своими словами?
stateDiagram-v2
    [*] --> LocalFiles: Create project
    LocalFiles --> Staged: git add .
    Staged --> Committed: git commit
    Committed --> GitHub: git push
    GitHub --> [*]: Success! 🎉
    
    note right of Staged
        Files ready to save
    end note
    
    note right of Committed
        Snapshot created
    end note

Помните: Даже опытные разработчики иногда забывают точные команды. Чтобы этот рабочий процесс стал автоматическим, требуется практика — вы отлично справляетесь!

Современные рабочие процессы Git

Рассмотрите возможность внедрения этих современных практик:

  • Conventional Commits: Используйте стандартизированный формат сообщений коммитов, например feat:, fix:, docs: и т.д. Узнайте больше на conventionalcommits.org
  • Атомарные коммиты: Пусть каждый коммит представляет собой одно логическое изменение.
  • Частые коммиты: Делайте коммиты часто с описательными сообщениями, а не редкие и крупные.

Сообщения коммитов

Отличная строка темы коммита Git завершает следующее предложение: Если применить, этот коммит <ваша строка темы здесь>.

Для темы используйте повелительное наклонение в настоящем времени: "изменить", а не "изменил" или "изменяет". Как и в теме, в теле (опционально) также используйте повелительное наклонение в настоящем времени. В теле следует указать мотивацию изменения и сравнить это с предыдущим поведением. Вы объясняете почему, а не как.

Потратьте несколько минут, чтобы поискать на GitHub. Можете ли вы найти действительно отличное сообщение коммита? А минимальное? Какую информацию, по вашему мнению, наиболее важно и полезно передать в сообщении коммита?

Работа с другими (самая интересная часть!)

Держитесь крепче, потому что СЕЙЧАС GitHub становится абсолютно волшебным! 🪄 Вы освоили управление своим кодом, а теперь мы погружаемся в мою абсолютную любимую часть — сотрудничество с удивительными людьми со всего мира.

Представьте: вы просыпаетесь завтра и видите, что кто-то в Токио улучшил ваш код, пока вы спали. Затем кто-то в Берлине исправляет баг, над которым вы застряли. К обеду разработчик из Сан-Паулу добавляет функцию, о которой вы даже не думали. Это не научная фантастика — это просто вторник во вселенной GitHub!

Что меня действительно вдохновляет, так это то, что навыки сотрудничества, которые вы собираетесь освоить, — это ТОЧНО те же рабочие процессы, которые команды в Google, Microsoft и ваших любимых стартапах используют каждый день. Вы не просто изучаете крутой инструмент — вы изучаете секретный язык, который позволяет всему миру программного обеспечения работать вместе.

Серьезно, как только вы испытаете восторг от того, что кто-то объединяет ваш первый pull request, вы поймете, почему разработчики так увлечены open source. Это как быть частью самого большого, самого творческого командного проекта в мире!

Посмотрите видео

Видео о Git и GitHub

Основная причина размещения вещей на GitHub — сделать возможным сотрудничество с другими разработчиками.

flowchart LR
    A[🔍 Find Project] --> B[🍴 Fork Repository]
    B --> C[📥 Clone to Local]
    C --> D[🌿 Create Branch]
    D --> E[✏️ Make Changes]
    E --> F[💾 Commit Changes]
    F --> G[📤 Push Branch]
    G --> H[🔄 Create Pull Request]
    H --> I{Maintainer Review}
    I -->|✅ Approved| J[🎉 Merge!]
    I -->|❓ Changes Requested| K[📝 Make Updates]
    K --> F
    J --> L[🧹 Clean Up Branches]
    
    style A fill:#e3f2fd
    style J fill:#e8f5e8
    style L fill:#fff3e0

В вашем репозитории перейдите в Insights > Community, чтобы увидеть, как ваш проект сравнивается с рекомендованными стандартами сообщества.

Хотите сделать ваш репозиторий профессиональным и гостеприимным? Перейдите в ваш репозиторий и нажмите Insights > Community. Эта крутая функция показывает, как ваш проект сравнивается с тем, что сообщество GitHub считает "хорошими практиками репозитория".

🎯 Сделайте ваш проект ярким: Хорошо организованный репозиторий с качественной документацией — это как чистая, гостеприимная витрина. Это показывает людям, что вы заботитесь о своей работе, и заставляет других хотеть внести свой вклад!

Что делает репозиторий отличным:

Что добавить Почему это важно Что это дает вам
Описание Первое впечатление имеет значение! Люди сразу понимают, что делает ваш проект
README Главная страница вашего проекта Как дружелюбный гид для новых посетителей
Руководство по внесению изменений Показывает, что вы приветствуете помощь Люди точно знают, как они могут вам помочь
Кодекс поведения Создает дружелюбное пространство Все чувствуют себя желанными участниками
Лицензия Юридическая ясность Другие знают, как они могут использовать ваш код
Политика безопасности Показывает вашу ответственность Демонстрирует профессиональные практики

💡 Профессиональный совет: GitHub предоставляет шаблоны для всех этих файлов. При создании нового репозитория отметьте галочки, чтобы автоматически сгенерировать эти файлы.

Современные функции GitHub для изучения:

🤖 Автоматизация и CI/CD:

  • GitHub Actions для автоматического тестирования и развертывания.
  • Dependabot для автоматического обновления зависимостей.

💬 Сообщество и управление проектами:

  • GitHub Discussions для обсуждений сообщества вне задач.
  • GitHub Projects для управления проектами в стиле канбан.
  • Правила защиты веток для обеспечения стандартов качества кода.

Все эти ресурсы помогут новым участникам команды. И именно на такие вещи новые участники обращают внимание перед тем, как взглянуть на ваш код, чтобы понять, подходит ли ваш проект для их времени.

Файлы README, хотя их подготовка занимает время, часто игнорируются занятыми мейнтейнерами. Можете ли вы найти пример особенно описательного README? Примечание: есть инструменты для создания хороших README, которые вам могут понравиться.

Задача: Объедините код

Документы для внесения изменений помогают людям вносить вклад в проект. Они объясняют, какие типы вкладов вы ищете и как работает процесс. Участники должны пройти серию шагов, чтобы внести вклад в ваш репозиторий на GitHub:

  1. Форк вашего репозитория. Вы, вероятно, захотите, чтобы люди форкали ваш проект. Форк означает создание копии вашего репозитория в их профиле на GitHub.
  2. Клонирование. После этого они клонируют проект на свою локальную машину.
  3. Создание ветки. Вы захотите попросить их создать ветку для своей работы.
  4. Сосредоточение изменений на одной области. Попросите участников сосредоточить свои изменения на одной вещи за раз — так шансы, что вы сможете объединить их работу, выше. Представьте, что они исправляют баг, добавляют новую функцию и обновляют несколько тестов — что, если вы хотите или можете реализовать только 2 из 3 или 1 из 3 изменений?

Представьте ситуацию, где ветки особенно важны для написания и выпуска хорошего кода. Какие случаи использования вы можете придумать?

Заметьте, будьте тем изменением, которое хотите видеть в мире, и создавайте ветки для своей работы тоже. Любые коммиты, которые вы делаете, будут сделаны в ветке, в которой вы сейчас "находитесь". Используйте git status, чтобы увидеть, какая это ветка.

Давайте пройдемся по рабочему процессу участника. Предположим, участник уже форкал и клонировал репозиторий, так что у него есть готовый Git-репозиторий на локальной машине:

  1. Создание ветки. Используйте команду git branch, чтобы создать ветку, которая будет содержать изменения, которые они хотят внести:

    git branch [branch-name]
    

    💡 Современный подход: Вы также можете создать и переключиться на новую ветку одной командой:

    git switch -c [branch-name]
    
  2. Переключение на рабочую ветку. Переключитесь на указанную ветку и обновите рабочую директорию с помощью git switch:

    git switch [branch-name]
    

    💡 Современная заметка: git switch — это современная замена git checkout при смене веток. Она более понятна и безопасна для новичков.

  3. Работа. На этом этапе вы хотите внести свои изменения. Не забудьте сообщить Git об этом с помощью следующих команд:

    git add .
    git commit -m "my changes"
    

    ⚠️ Качество сообщения коммита: Убедитесь, что вы дали вашему коммиту хорошее название, как для себя, так и для мейнтейнера репозитория, которому вы помогаете. Будьте конкретны в том, что вы изменили!

  4. Объединение вашей работы с веткой main. В какой-то момент вы завершаете работу и хотите объединить ее с веткой main. Ветка main могла измениться за это время, поэтому сначала убедитесь, что вы обновили ее до последней версии с помощью следующих команд:

    git switch main
    git pull
    

    На этом этапе вы хотите убедиться, что любые конфликты, ситуации, когда Git не может легко объединить изменения, происходят в вашей рабочей ветке. Поэтому выполните следующие команды:

    git switch [branch_name]
    git merge main
    

    Команда git merge main объединит все изменения из main в вашу ветку. Надеемся, вы сможете просто продолжить. Если нет, VS Code покажет вам, где Git запутался, и вы просто измените затронутые файлы, чтобы указать, какой контент наиболее точен.

    💡 Современная альтернатива: Рассмотрите использование git rebase для более чистой истории:

    git rebase main
    

    Это воспроизводит ваши коммиты поверх последней ветки main, создавая линейную историю.

  5. Отправьте вашу работу на GitHub. Отправка вашей работы на GitHub означает две вещи. Push вашей ветки в ваш репозиторий и затем открытие PR, Pull Request.

    git push --set-upstream origin [branch-name]
    

    Вышеприведенная команда создает ветку в вашем форкнутом репозитории.

🤝 Проверка навыков сотрудничества: готовы работать с другими?

Давайте посмотрим, как вы чувствуете себя в отношении сотрудничества:

  • Теперь идея форков и pull requests понятна вам?
  • Что вы хотите больше практиковать в работе с ветками?
  • Насколько комфортно вы чувствуете себя, внося вклад в чужой проект?
mindmap
  root((Git Collaboration))
    Branching
      Feature branches
      Bug fix branches
      Experimental work
    Pull Requests
      Code review
      Discussion
      Testing
    Best Practices
      Clear commit messages
      Small focused changes
      Good documentation

Укрепление уверенности: Каждый разработчик, которым вы восхищаетесь, когда-то нервничал из-за своего первого pull request. Сообщество GitHub невероятно приветливо к новичкам!

  1. Откройте PR. Далее вы хотите открыть PR. Вы делаете это, перейдя в форкнутый репозиторий на GitHub. Вы увидите указание на GitHub, где вас спросят, хотите ли вы создать новый PR, вы нажимаете на это, и вас перенаправляют в интерфейс, где вы можете изменить заголовок сообщения коммита, дать ему более подходящее описание. Теперь мейнтейнер репозитория, который вы форкали, увидит этот PR и надеемся оценит и объединит ваш PR. Теперь вы участник, ура :)

    💡 Современный совет: Вы также можете создавать PR с помощью GitHub CLI:

    gh pr create --title "Your PR title" --body "Description of changes"
    

    🔧 Лучшие практики для PR:

    • Ссылайтесь на связанные задачи, используя ключевые слова, такие как "Fixes #123".
    • Добавляйте скриншоты для изменений в интерфейсе.
    • Запрашивайте конкретных рецензентов.
    • Используйте черновые PR для работы в процессе.
    • Убедитесь, что все проверки CI пройдены перед запросом рецензии.
  2. Очистка. Считается хорошей практикой очищать после успешного слияния PR. Вам нужно очистить как локальную ветку, так и ветку, которую вы отправили на GitHub. Сначала удалим её локально с помощью следующей команды:

    git branch -d [branch-name]
    

    Затем перейдите на страницу форкнутого репозитория на GitHub и удалите удалённую ветку, которую вы только что туда отправили.

Pull request может показаться странным термином, ведь на самом деле вы хотите отправить свои изменения в проект. Но владелец проекта или основная команда должны рассмотреть ваши изменения перед их слиянием с основной веткой проекта, так что на самом деле вы запрашиваете решение о внесении изменений у владельца проекта.

Pull request — это место, где можно сравнить и обсудить изменения, внесённые в ветку, с помощью обзоров, комментариев, интегрированных тестов и других инструментов. Хороший pull request следует примерно тем же правилам, что и сообщение коммита. Вы можете добавить ссылку на задачу в трекере задач, если ваша работа, например, решает эту задачу. Это делается с помощью символа #, за которым следует номер вашей задачи. Например, #97.

🤞Держим кулачки, чтобы все проверки прошли успешно и владелец(ы) проекта слили ваши изменения в проект🤞

Обновите текущую локальную рабочую ветку, добавив все новые коммиты из соответствующей удалённой ветки на GitHub:

git pull

Вклад в Open Source (Ваш шанс внести свой вклад!)

Готовы к чему-то, что вас по-настоящему удивит? 🤯 Давайте поговорим о вкладе в проекты с открытым исходным кодом у меня мурашки по коже от мысли о том, что я могу поделиться этим с вами!

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

Вот что вызывает у меня восторг каждый раз, когда я думаю об этом: каждый инструмент, с которым вы учитесь работать ваш редактор кода, фреймворки, которые мы будем изучать, даже браузер, в котором вы читаете это начался с того, что кто-то, точно такой же, как вы, сделал свой первый вклад. Тот гениальный разработчик, который создал ваше любимое расширение для VS Code? Когда-то он был новичком, который с дрожащими руками нажимал "создать pull request", как вы собираетесь сделать.

И вот что самое прекрасное: сообщество open source это как самый большой групповой объятие в интернете. Большинство проектов активно ищут новичков и имеют задачи с тегом "good first issue", специально предназначенные для таких, как вы! Владельцы проектов искренне радуются, когда видят новых участников, потому что они помнят свои первые шаги.

flowchart TD
    A[🔍 Explore GitHub] --> B[🏷️ Find "good first issue"]
    B --> C[📖 Read Contributing Guidelines]
    C --> D[🍴 Fork Repository]
    D --> E[💻 Set Up Local Environment]
    E --> F[🌿 Create Feature Branch]
    F --> G[✨ Make Your Contribution]
    G --> H[🧪 Test Your Changes]
    H --> I[📝 Write Clear Commit]
    I --> J[📤 Push & Create PR]
    J --> K[💬 Engage with Feedback]
    K --> L[🎉 Merged! You're a Contributor!]
    L --> M[🌟 Find Next Issue]
    
    style A fill:#e1f5fe
    style L fill:#c8e6c9
    style M fill:#fff59d

Вы не просто учитесь программировать вы готовитесь стать частью глобальной семьи создателей, которые каждый день думают: "Как мы можем сделать цифровой мир немного лучше?" Добро пожаловать в клуб! 🌟

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

Хороший способ найти репозитории для новичков поиск по тегу 'good-first-issue'.

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

Существует несколько способов копирования кода. Один из них "клонировать" содержимое репозитория, используя HTTPS, SSH или GitHub CLI (Command Line Interface).

Откройте терминал и клонируйте репозиторий следующим образом:

# Using HTTPS
git clone https://github.com/ProjectURL

# Using SSH (requires SSH key setup)
git clone git@github.com:username/repository.git

# Using GitHub CLI
gh repo clone username/repository

Чтобы работать над проектом, перейдите в нужную папку: cd ProjectURL

Вы также можете открыть весь проект, используя:

  • GitHub Codespaces - облачная среда разработки GitHub с VS Code в браузере
  • GitHub Desktop - графическое приложение для операций с Git
  • GitHub.dev - нажмите клавишу . на любом репозитории GitHub, чтобы открыть VS Code в браузере
  • VS Code с расширением GitHub Pull Requests

Наконец, вы можете скачать код в виде архива.

Несколько интересных фактов о GitHub

Вы можете ставить звёздочки, следить за обновлениями и "форкать" любой публичный репозиторий на GitHub. Найти свои отмеченные звёздочками репозитории можно в выпадающем меню в правом верхнем углу. Это как закладки, но для кода.

У проектов есть трекер задач, чаще всего на GitHub в разделе "Issues", если не указано иначе, где люди обсуждают вопросы, связанные с проектом. А вкладка Pull Requests это место, где обсуждаются и проверяются изменения, находящиеся в процессе.

У проектов также могут быть обсуждения на форумах, в списках рассылки или чатах, таких как Slack, Discord или IRC.

🔧 Современные функции GitHub:

  • GitHub Discussions - Встроенный форум для обсуждений сообщества
  • GitHub Sponsors - Финансовая поддержка владельцев проектов
  • Вкладка Security - Отчёты о уязвимостях и рекомендации по безопасности
  • Вкладка Actions - Автоматизированные рабочие процессы и CI/CD пайплайны
  • Вкладка Insights - Аналитика о вкладчиках, коммитах и состоянии проекта
  • Вкладка Projects - Встроенные инструменты управления проектами на GitHub

Ознакомьтесь с вашим новым репозиторием на GitHub и попробуйте сделать несколько вещей, например, изменить настройки, добавить информацию в репозиторий, создать проект (например, доску Kanban) и настроить GitHub Actions для автоматизации. Возможностей много!


🚀 Задание

Ну что, пора проверить ваши новые суперспособности на GitHub! 🚀 Вот задание, которое поможет вам закрепить знания самым увлекательным образом:

Возьмите друга (или члена семьи, который всегда интересуется, чем вы занимаетесь с компьютером) и отправьтесь в совместное кодинг-приключение! Здесь начинается настоящая магия создайте проект, пусть ваш друг его форкнет, создайте ветки и объединяйте изменения, как настоящие профессионалы.

Не буду скрывать вы, вероятно, будете смеяться (особенно когда оба попробуете изменить одну и ту же строку), возможно, немного запутаетесь, но обязательно испытаете те удивительные моменты "ага!", которые делают весь процесс обучения стоящим. А ещё есть что-то особенное в том, чтобы разделить первый успешный merge с кем-то это как маленький праздник ваших достижений!

Пока у вас нет напарника? Не переживайте! Сообщество GitHub полно невероятно дружелюбных людей, которые помнят, каково это быть новичком. Ищите репозитории с меткой "good first issue" это как приглашение: "Эй, новички, давайте учиться вместе!" Как это круто?

Викторина после лекции

Викторина после лекции

Обзор и продолжение обучения

Ух ты! 🎉 Посмотрите на себя вы только что освоили основы GitHub, как настоящий чемпион! Если ваш мозг сейчас немного перегружен, это абсолютно нормально и даже хороший знак. Вы только что изучили инструменты, которые мне потребовалось несколько недель, чтобы освоить, когда я начинал.

Git и GitHub невероятно мощные (серьёзно мощные), и каждый разработчик, которого я знаю включая тех, кто сейчас кажется волшебниками должен был практиковаться и немного путаться, прежде чем всё стало понятно. То, что вы прошли этот урок, означает, что вы уже на пути к освоению одних из самых важных инструментов в арсенале разработчика.

Вот несколько отличных ресурсов, которые помогут вам практиковаться и стать ещё круче:

И помните: практика делает прогресс, а не совершенство! Чем больше вы используете Git и GitHub, тем естественнее это становится. GitHub создал потрясающие интерактивные курсы, которые позволяют вам практиковаться в безопасной среде:

Хотите приключений? Ознакомьтесь с этими современными инструментами:

Вызов GitHub Copilot Agent 🚀

Используйте режим Agent, чтобы выполнить следующее задание:

Описание: Создайте совместный проект веб-разработки, который демонстрирует полный рабочий процесс GitHub, изученный в этом уроке. Это задание поможет вам практиковаться в создании репозиториев, использовании функций для совместной работы и современных рабочих процессах Git в реальной ситуации.

Задание: Создайте новый публичный репозиторий GitHub для простого проекта "Ресурсы веб-разработки". Репозиторий должен включать хорошо структурированный файл README.md, содержащий полезные инструменты и ресурсы для веб-разработки, организованные по категориям (HTML, CSS, JavaScript и т.д.). Настройте репозиторий с соблюдением стандартов сообщества, включая лицензию, рекомендации по внесению вклада и кодекс поведения. Создайте как минимум две ветки для функций: одну для добавления ресурсов CSS и другую для ресурсов JavaScript. Сделайте коммиты в каждую ветку с описательными сообщениями коммитов, затем создайте pull requests для слияния изменений обратно в основную ветку. Включите функции GitHub, такие как Issues, Discussions, и настройте базовый рабочий процесс GitHub Actions для автоматических проверок.

Задание

Ваша миссия, если вы решите её принять: Пройдите курс Введение в GitHub на GitHub Skills. Этот интерактивный курс позволит вам практиковаться во всём, что вы узнали, в безопасной, управляемой среде. А ещё вы получите классный значок, когда закончите! 🏅

Готовы к новым вызовам?

  • Настройте SSH-аутентификацию для вашего аккаунта GitHub (больше никаких паролей!)
  • Попробуйте использовать GitHub CLI для ежедневных операций с Git
  • Создайте репозиторий с рабочим процессом GitHub Actions
  • Исследуйте GitHub Codespaces, открыв этот самый репозиторий в облачном редакторе

🚀 Ваш путь к мастерству на GitHub

Что можно сделать за следующие 5 минут

  • Отметьте звёздочкой этот репозиторий и ещё 3 проекта, которые вас интересуют
  • Настройте двухфакторную аутентификацию для вашего аккаунта GitHub
  • Создайте простой README для вашего первого репозитория
  • Подпишитесь на 5 разработчиков, чья работа вас вдохновляет

🎯 Что можно достичь за час

  • Пройдите викторину после урока и подумайте о своём пути на GitHub
  • Настройте SSH-ключи для аутентификации на GitHub без пароля
  • Сделайте свой первый значимый коммит с отличным сообщением
  • Исследуйте вкладку "Explore" на GitHub, чтобы найти интересные проекты
  • Попрактикуйтесь в форке репозитория и внесении небольших изменений

📅 Ваше недельное приключение на GitHub

  • Пройдите курсы GitHub Skills (Введение в GitHub, Markdown)
  • Сделайте свой первый pull request в проект с открытым исходным кодом
  • Настройте сайт GitHub Pages, чтобы показать свои работы
  • Присоединитесь к обсуждениям на GitHub по интересующим вас проектам
  • Создайте репозиторий с соблюдением стандартов сообщества (README, лицензия и т.д.)
  • Попробуйте GitHub Codespaces для разработки в облаке

🌟 Ваше месячное преобразование

  • Внесите вклад в 3 разных проекта с открытым исходным кодом
  • Станьте наставником для новичка на GitHub (передайте свои знания!)
  • Настройте автоматизированные рабочие процессы с помощью GitHub Actions
  • Создайте портфолио, демонстрирующее ваши вклады на GitHub
  • Участвуйте в Hacktoberfest или подобных мероприятиях сообщества
  • Станьте владельцем собственного проекта, в который будут вносить вклад другие

🎓 Итоговая проверка вашего мастерства на GitHub

Отпразднуйте свои достижения:

  • Что вам больше всего нравится в использовании GitHub?
  • Какая функция для совместной работы вас больше всего вдохновляет?
  • Насколько уверенно вы чувствуете себя в вопросах вклада в open source?
  • Какой проект вы хотите поддержать в первую очередь?
journey
    title Your GitHub Confidence Journey
    section Today
      Nervous: 3: You
      Curious: 4: You
      Excited: 5: You
    section This Week
      Practicing: 4: You
      Contributing: 5: You
      Connecting: 5: You
    section Next Month
      Collaborating: 5: You
      Leading: 5: You
      Inspiring Others: 5: You

🌍 Добро пожаловать в глобальное сообщество разработчиков! Теперь у вас есть инструменты для сотрудничества с миллионами разработчиков по всему миру. Ваш первый вклад может показаться небольшим, но помните каждый крупный проект с открытым исходным кодом начался с того, что кто-то сделал свой первый коммит. Вопрос не в том, окажете ли вы влияние, а в том, какой удивительный проект первым получит выгоду от вашего уникального взгляда! 🚀

Помните: каждый эксперт когда-то был новичком. У вас всё получится! 💪


Отказ от ответственности:
Этот документ был переведен с использованием сервиса автоматического перевода Co-op Translator. Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.