1. Начало работы: клонирование проекта
Начнем с того, на чем остановились в прошлой лекции. У вас есть репозиторий, созданный на GitHub, и теперь вам нужно получить его локальную копию на свой компьютер, чтобы начать работу. Этот процесс называется клонированием.
Шаг 1. Запустите вашу IDE. Если у вас открыт какой-то проект, закройте его через File | Close Project. На стартовом окне (Welcome Screen) выберите Clone Repository (или Get from VCS).
Шаг 2. В открывшемся окне вставьте URL вашего репозитория. Такой способ полезен, если вы клонируете чей-то репозиторий. URL можно скопировать со страницы репозитория на GitHub.
Если вы клонируете свой репозиторий (наш вариант), проще всего войти в свой аккаунт GitHub прямо из IDE. Для этого выберите опцию Log in to GitHub. Ваша IDE откроет браузер для авторизации.
На открывшейся странице смело нажимайте зеленую кнопку 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 (и скрытые папки IDE).
Откройте файл README.md и добавьте в него описание вашего проекта. Как только вы начнете редактировать файл, IDE подсветит его имя синим цветом на панели проекта. Это означает, что файл был изменен, но изменения еще не сохранены в Git. IDE добавит зеленую линию там, где вы внесли изменения.
Шаг 2. Откройте окно Commit.
Слева в IDE находится вкладка Commit. Открыв ее, вы увидите все изменения, готовые к сохранению. Это ваша Область индексации (Staging Area).
Давайте разберем, что мы видим:
- Changes: здесь находятся файлы, которые уже отслеживаются в Git, но были изменены. В нашем случае это
README.md, в который мы добавили план проекта. - Unversioned Files: это новые файлы, которые Git видит в папке проекта, но еще не отслеживает.
Важно
Перед тем как нажать кнопку Commit, всегда смотрите глазами, напротив каких файлов стоят галочки. Особенно это касается первого коммита.
Если вы видите в списке Unversioned Files папку .idea/ (и особенно файл workspace.xml, который меняется при каждом клике мышки) или папки с названием bin/, vendor/, а также скомпилированные бинарные файлы (например, myapp.exe) — остановитесь! Эти служебные файлы не должны попасть в общую историю. Хорошая новость: если вы создали репозиторий с шаблоном .gitignore (Go), Git сам скроет эти папки. Если же они видны, их нужно срочно добавить в игнор (об этом в конце лекции).
А пока наша задача для первого коммита — поставить галочки у основных файлов проекта, написать понятное сообщение в поле Commit Message.
Шаг 3. Сделайте коммит.
Нажмите на синюю кнопку Commit. Готово! Вы сохранили "снимок" вашего проекта в локальном репозитории. Имя файла снова станет обычного цвета.
3. Отправка изменений на GitHub: Push
Ваши коммиты пока что хранятся только на вашем компьютере. Чтобы поделиться ими с командой или сохранить их в надежном месте, нужно отправить их на удаленный репозиторий GitHub.
sequenceDiagram
participant Локальный репозиторий (Ваш компьютер)
participant Удаленный репозиторий (GitHub)
note over Локальный репозиторий (Ваш компьютер): Вы сделали один или несколько коммитов.
Они существуют только здесь.
Локальный репозиторий (Ваш компьютер) ->> Удаленный репозиторий (GitHub): git push (отправить коммиты)
note over Удаленный репозиторий (GitHub): Ваши коммиты скопированы
и надежно сохранены на сервере.
Шаг 1. Нажмите на кнопку Push.
В интерфейсе кнопка Push находится на главной верхней панели инструментов (Main Toolbar). Она выглядит как стрелочка, направленная вверх и вправо. Нажмите на нее.
Шаг 2. Проверьте и подтвердите.
Откроется окно, где вы увидите все коммиты, которые готовы к отправке. Это ваш последний шанс убедиться, что вы отправляете именно то, что нужно. Нажмите Push.
Если все прошло успешно, вы увидите всплывающее уведомление IDE: Pushed commits to origin/main. Create pull request.
Шаг 3. Проверьте результат на GitHub.
После успешной отправки откройте страницу вашего репозитория на GitHub в браузере. Вы увидите, что ваши изменения и файлы появились там.
4. Панель управления Git
В вашей IDE есть отдельная панель инструментов Git, а также быстрые действия на верхнем Main Toolbar. Это ваш центр управления версиями. Давайте познакомимся с ключевыми кнопками.
Commit(галочка): открывает панель для сохранения изменений.Push(стрелочка вверх/вправо): открывает окно для отправки ваших коммитов на GitHub.Branches: открывает виджет для управления ветками (в левом верхнем углу).Show Git Log: показывает всю историю коммитов вашего проекта на вкладке Git. Ваша личная машина времени.
Утро начинается с Update Project
Кнопка Update Project выполняет важнейшую функцию — скачивает свежие изменения от других участников команды с сервера GitHub на ваш компьютер (выполняет git pull).
Возьмите в привычку: каждое утро, прежде чем написать хотя бы одну строчку нового кода, нажимайте эту кнопку. Если вы начнете работать со старым кодом, а ваши коллеги уже внесли изменения в те же файлы, к обеду вы получите сложный конфликт слияния.
5. Использование .gitignore-файлов
Если в вашем проекте появляются служебные файлы или результаты компиляции, и вы не хотите, чтобы они случайно попали в репозиторий, их нужно добавить в исключения. Для этого в корне проекта создается специальный файл с именем .gitignore.
Специфика Go и что мы игнорируем
В экосистеме Go компиляция и тестирование выполняются встроенными инструментами (go build, go test). Процесс сборки и запуска тестов создает бинарные файлы и кэши, которые категорически запрещено отправлять в Git:
bin/илиout/— папки, куда вы можете складывать готовые скомпилированные программы. Они уникальны для вашей операционной системы и архитектуры процессора.*.exe, файлы без расширений (в Linux/macOS) — сами бинарные исполняемые файлы. Хранить их в Git — дурной тон: они занимают место и бесполезны для других разработчиков (так как скомпилированы под вашу конкретную ОС).*.test,*.out— бинарники, созданные во время тестов, и файлы профилирования/покрытия кода (например,coverage.out).go.workиgo.work.sum— файлы локального рабочего пространства. В отличие отgo.modиgo.sum, которые обязаны быть в репозитории, файлыgo.workпредназначены только для вашего личного локального удобства.vendor/— директория с локальными копиями зависимостей. В современных проектах на Go модулях (Go Modules) ее часто добавляют в игнор, доверяя скачивание пакетов утилитеgo mod..idea/— локальные настройки окна IDE (какие файлы у вас открыты, размер шрифта). Вашим коллегам ваши личные настройки интерфейса не нужны, а файлworkspace.xmlвообще меняется каждую секунду.
Как добавить файл в игнор вручную:
Шаг 1. Допустим, вы создали временный файл notes.txt с паролями к тестовой базе. Щелкните по нему правой кнопкой мыши в окне проекта.
Шаг 2. Перейдите в меню Git -> Add to .gitignore -> Add to .gitignore. Эта опция добавляет выбранный файл в файл .gitignore в корне вашего проекта.
Если у вас еще нет файла .gitignore, IDE предложит его создать. Соглашайтесь.
Шаг 3. Ваша IDE автоматически добавит имя файла в .gitignore.
После этого проигнорированные файлы будут отображаться в дереве проекта серым или оливковым цветом. При попытке сделать коммит Git просто "не увидит" эти файлы. Главное — не забудьте закоммитить сам файл .gitignore, чтобы эти правила игнорирования скачали все участники вашей команды.
А что если я уже закоммитил?
.gitignore игнорирует только новые, еще не отслеживаемые файлы. Если вы по ошибке уже закоммитили папку bin/, она находится в истории, и Git продолжит следить за ней, даже если вы добавите ее в .gitignore. Для таких ситуаций потребуется очистить кэш (например, командой git rm -r --cached bin/ в терминале), но лучше просто не допускать попадания мусора в первом коммите.
Правила для .gitignore
В файле .gitignore указываются шаблоны имен файлов и папок, которые Git должен игнорировать. Пустые строки игнорируются. Чтобы добавить комментарий, начните строку с символа #.
*— заменяет любое количество любых символов. Например,*.logигнорирует все файлы с расширением.log./— в конце шаблона означает директорию. Например,build/игнорирует все содержимое папкиbuild.!— в начале строки инвертирует правило. Например, если у вас есть правило*.log, но вы хотите отслеживатьimportant.log, добавьте строку!important.log.**— соответствует любому количеству вложенных папок.
Пример файла .gitignore для Go
# Скомпилированные бинарные файлы
*.exe
*.exe~
*.dll
*.so
*.dylib
bin/
# Файлы тестирования и профилирования
*.test
*.out
# Файлы локального рабочего пространства Go
go.work
go.work.sum
# Директория с локальными копиями зависимостей (опционально)
vendor/
# Файлы и настройки локальной IDE
.idea/
# Файлы операционной системы
.DS_Store
Thumbs.db
Готовые шаблоны
Вам не нужно писать эти файлы с нуля. Существуют готовые, проверенные сообществом шаблоны:
- Коллекция
.gitignoreот GitHub для разных языков и фреймворков: https://github.com/github/gitignore. - gitignore.io — удобный веб-сервис, который генерирует файл
.gitignoreпод ваши технологии (просто введите Go, GoLand, Intellij).
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ