JavaRush /Курсы /C# SELF /Ежедневный цикл разработчика: Commit, Push и .gitignore

Ежедневный цикл разработчика: Commit, Push и .gitignore

C# SELF
26 уровень , 1 лекция
Открыта

1. Начало работы: клонирование проекта

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

Шаг 1. Запустите вашу IDE. Если у вас открыт какой-то проект, закройте его через File -> Close Project. На стартовом окне выберите Clone Repository или Get from VCS.

Шаг 2. В открывшемся окне вставьте URL вашего репозитория. Такой способ полезен, если вы клонируйте чей-то репозиторий. URL можно скопировать со страницы репозитория на GitHub.

Если вы клонируете свой репозиторий (наш вариант), проще всего войти в свой аккаунт GitHub прямо из IDE. Для этого выберите опцию Log in to GitHub. Ваша IDE откроет браузер для авторизации.

Окно авторизации JetBrains IDE на GitHub

На открывшейся странице смело нажимайте зеленую кнопку Authorize JetBrains. После этого вы сможете выбирать свои репозитории прямо из списка в IDE. Выберите нужный проект и нажмите Clone.

Шаг 3. Ваша IDE спросит, доверяете ли вы этому проекту. Поскольку это ваш собственный репозиторий, нажмите Trust Project.

Шаг 4. Настройка антивируса (для пользователей Windows)

Антивирус Windows может предупредить, что IDE пытается выполнить неизвестные ему действия. Поскольку мы собираемся создавать и запускать программы, нам нужно разрешить IDE работать без ограничений. Нажмите на кнопку «Automatically», чтобы IDE сама добавила нужные папки в исключения антивируса.

2. Сохранение изменений: Commit

commit — это "снимок", или сохраненное состояние вашего проекта в определенный момент времени. Думайте о нем как о точке сохранения в игре: вы всегда можете вернуться к ней, если что-то пойдет не так. У каждого коммита есть уникальный идентификатор и сообщение, описывающее сделанные изменения.

            gitGraph
            commit id: "Initial commit"
            commit id: "Add user authentication"
            commit id: "Fix login button bug"
            commit id: "Refactor database connection"
        
История коммитов. Каждый новый коммит строится на основе предыдущего, создавая хронологию развития проекта.

Шаг 1. Внесите изменения.

Если вы клонировали свежесозданный репозиторий, он будет содержать только один файл — README.md

Откройте файл README.md и добавьте в него описание вашего проекта. Как только вы начнете редактировать файл, IDE подсветит его имя синим цветом на панели проекта. Это означает, что файл был изменен, но изменения еще не сохранены в Git. IDE добавит зеленую линию там, где вы внесли изменения.

Шаг 2. Откройте окно Commit.

Слева в IDE есть вкладка Commit. Открыв ее, вы увидите все изменения, готовые к сохранению. Для самого первого коммита это окно требует особого внимания.

Давайте разберем, что мы видим:

  • Changes: здесь находятся файлы, которые уже отслеживаются в Git, но были изменены. В нашем случае это README.md, в который мы добавили план проекта.
  • Unversioned Files: это новые файлы, которые Git видит в папке проекта, но еще не отслеживает.

Может возникнуть вопрос: нужно ли добавлять все эти служебные файлы в репозиторий?

Хорошая новость заключается в том, что когда мы создавали репозиторий на GitHub, мы выбрали шаблон .gitignore. Этот файл уже содержит правила, которые говорят Git игнорировать ненужные папки или файлы. Но об этом мы поговорим подробнее в конце лекции.

А пока наша задача для первого коммита — добавить все основные файлы проекта в историю и написать само сообщение коммита.

Шаг 3. Сделайте коммит.

Нажмите на кнопку Commit. Готово! Вы сохранили "снимок" вашего проекта в локальном репозитории. Файл снова станет обычного цвета.

3. Отправка изменений на GitHub: Push

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

            sequenceDiagram
            participant Локальный репозиторий (Ваш компьютер)
            participant Удаленный репозиторий (GitHub)

            note over Локальный репозиторий (Ваш компьютер): Вы сделали один или несколько коммитов.
Они существуют только здесь. Локальный репозиторий (Ваш компьютер) ->> Удаленный репозиторий (GitHub): git push (отправить коммиты) note over Удаленный репозиторий (GitHub): Ваши коммиты скопированы
и надежно сохранены на сервере.
Ваши локальные коммиты отправляются на удаленный сервер, синхронизируя историю проекта.

Шаг 1. Нажмите на кнопку Push.

В правом верхнем углу IDE есть зеленая стрелка вверх — это кнопка Push. Нажмите на нее.

Шаг 2. Проверьте и подтвердите.

Откроется окно, где вы увидите все коммиты, которые готовы к отправке. Это ваш последний шанс убедиться, что вы отправляете именно то, что нужно. Нажмите Push.

Если все прошло успешно, вы увидите сообщения: Pushed commits to origin/main. Create pull request

Шаг 3. Проверьте результат на GitHub.

После успешной отправки откройте страницу вашего репозитория на GitHub. Вы увидите, что ваши изменения появились там.

4. Панель управления Git

В вашей IDE есть специальное меню Git, которое можно найти в верхней панели. Это ваш центр управления версиями. Давайте быстро познакомимся с его ключевыми пунктами.

  • Commit: открывает уже знакомое нам окно для сохранения изменений.
  • Push: открывает окно для отправки ваших коммитов на GitHub.
  • Update Project: очень важная функция. Она скачивает свежие изменения от других участников команды (выполняет git pull). Нажимайте ее каждое утро перед началом работы!
  • Branches: открывает окно для управления ветками. С этим мы подробно разберемся в следующей лекции.
  • Show Git Log: показывает всю историю коммитов вашего проекта. Ваша личная машина времени.

5. Использование .gitignore-файлов

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

Шаг 1. Для начала создайте файл в каталоге проекта, который хотите игнорировать. Например, notes.txt. После создания файла нажмите Cancel, если IDE предложит добавить его в Git.

Шаг 2. Щелкните правой кнопкой мыши по созданному файлу в окне "Project". Перейдите к Git --> Add to .gitignore --> Add to .gitignore. Эта опция добавляет выбранный файл в файл .gitignore в корне вашего проекта.

Если у вас еще не было файла .gitignore, IDE предложит его создать. Соглашайтесь.

Шаг 3. Ваша IDE автоматически добавит имя файла в .gitignore.

После добавления в .gitignore игнорируемые файлы будут отображаться серым или коричневым цветом. При попытке закоммитить изменения эти файлы будут проигнорированы. Папку .idea можна добавить в игнор.

Не забудьте закоммитить сам файл .gitignore в репозиторий и отправить изменения на GitHub, чтобы все участники проекта использовали одинаковые правила игнорирования файлов.

Исключение локальных файлов: .git/info/exclude

Помимо файла .gitignore, который используется для исключения файлов для всех пользователей проекта, Git предоставляет возможность создавать локальные правила игнорирования в файле .git/info/exclude. Они не будут закоммичены в репозитории и будут действовать только для вашей локальной копии проекта.

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

Важно! Локальные правила игнорирования действуют только для вашей локальной копии репозитория.

А что если я уже закоммитил?

.gitignore игнорирует только новые, еще не отслеживаемые файлы. Если вы уже закоммитили файл, он находится в истории репозитория, и Git продолжит следить за ним, даже если вы добавите его в .gitignore. Для таких ситуаций есть команда для терминала: git rm --cached <file>. Но о ней нужно будет почитать отдельно.

Правила для .gitignore

В файле .gitignore указываются шаблоны имен файлов и папок, которые Git должен игнорировать.

Пустые строки игнорируются. Чтобы добавить комментарий, начните строку с символа #.

Шаблоны:

  • * — заменяет любое количество любых символов. Например, *.log игнорирует все файлы с расширением .log.
  • / — в конце шаблона означает директорию. Например, logs/ игнорирует все содержимое папки logs.
  • ! — в начале строки инвертирует правило. Например, если у вас есть правило *.log, но вы хотите отслеживать important.log, добавьте строку !important.log.
  • ** — соответствует любому количеству вложенных папок. Например, **/temp игнорирует папки temp на любом уровне вложенности.

Пример файла .gitignore


# Скомпилированный код
/bin/
/obj/

# Временные файлы
*.tmp
*.swp

# Логи
*.log

# Папки, создаваемые IDE
.idea/
*.user
*.suo

# Виртуальные окружения и зависимости
/venv/
/node_modules/

Готовые шаблоны

Вам не нужно писать эти файлы с нуля. Существуют готовые, проверенные сообществом шаблоны:

  1. Коллекция .gitignore от GitHub для разных языков и фреймворков: https://github.com/github/gitignore.
  2. gitignore.io — удобный веб-сервис, который генерирует файл .gitignore под ваши технологии.
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ