Когда я был очень молод, я каким-то образом попал в мир C++ и собрал извечно любимую программу «Hello World». Я скомпилировал его, выполнил и получил всплывающее окно, подтверждающее успешное вторжение в «программирование».
Однако я никогда не заходил дальше этого, потому что, когда мне было 12 лет, мой процесс контроля версий… отстой. Я терял исходный код, затем возвращался к нему через неделю и заново создавал новый файл. Я экспериментировал и добивался прогресса, делая небольшие вещи с C++, но каждый раз, когда я это делал, все начиналось с нуля, потому что у меня плохо получалось контролировать исходный код.
Ничто не убьет ваше стремление работать с кодом быстрее, чем потеря всего вашего прогресса при каждой сборке. Решением этой проблемы является Git или, в данном случае, GitHub. Теперь мы возьмем это небольшое развертывание Terraform из части 3 и поместим его в GitHub, используя несколько основных команд Git на встроенном терминале в VSCode (для этого существует расширение VSCode Github, но лучше, чтобы вы понимали, какие команды Git используются для решения задач такого типа, прежде чем полагаться на расширение, которое сделает это за вас).
Вы также можете использовать собственный терминал вашей ОС (CMD, Powershell, ZSH и т. д.) для этих шагов.
Откройте терминал в VSCode, нажав «CTRL + `» (это обратный апостроф, маленькая клавиша слева от «1»).
В этом новом терминале убедитесь, что вы находитесь в правильном каталоге файлов (он должен быть по умолчанию). На следующем шаге мы инициализируем репозиторий Git в этой папке и начнем отслеживать изменения в вашем коде. Если это не тот каталог, в котором находится ваш код, измените его на правильный каталог.
Теперь мы хотим инициализировать Git; чтобы сделать это, введите: git init
Git теперь работает в этом каталоге, однако он не отслеживает файлы (или код в этих файлах).
Git может использовать как локальные репозитории кода, так и удаленные репозитории кода («репо»). В большинстве профессиональных настроек вы будете использовать удаленное репозиторий с такими службами, как Github, Gitlab, Bitbucket и т. д. Нам нужно сообщить Git, куда отправить этот код, чтобы мы собирались его отследить. Для этого мы используем git remote add
.
Синтаксис для этого выглядит следующим образом: git remote add origin https://github.com/owner/repo_name.git
Разбираем это: git remote add origin
инструктирует git добавить удаленный репозиторий с именем «origin» и использовать URL-адрес после него в качестве места назначения для этого удаленного репозитория.
В моем случае я создал новый (пустой) репозиторий на GitHub под своей учетной записью, поэтому он выглядит так: git remote add origin https://github.com/wellmadeoldfashioned/YT-single-server-arch-AWS.git
Теперь мы можем перейти к указанию git «отслеживать» файлы. Чтобы отслеживать конкретный файл, мы можем сделать: git add [filename]
ИЛИ, чтобы отслеживать все в текущем репозитории, вы можете сделать: git add .
- обычно лучше быть явным и добавлять отдельные файлы, а не отслеживать все файлы в локальном каталоге.
Давайте теперь добавим наш файл terraform; для этого введите следующую команду: git add main.tf
На этом этапе файл или файлы, которые вы добавили на предыдущем шаге, теперь «проиндексированы» — все это означает, что вы сказали Git «сделать копию этих файлов в том виде, в каком они есть сейчас, и быть готовым отправить копии в репозиторий». (в данном случае удаленный репозиторий: Github).
После того как файлы подготовлены, нам нужно создать фиксацию — думайте об этом как о контрольной точке в процессе разработки, куда вы можете добавить короткое сообщение с описанием контрольной точки.
Для подготовки коммита мы используем git commit -m “[message_goes_here]”
— по традиции при первом коммите вы используете что-то вроде «начального коммита», но нет правил, определяющих, что входит в сообщение. Вообще говоря, вам нужно быть кратким и описательным. Например, если бы это был коммит, обновляющий имя переменной, мы бы сказали просто: git commit -m “updated AMI variable to XYZ”
Теперь введите: git commit -m “initial commit”
— вы должны получить несколько строк отзыва от Git, которые выглядят следующим образом:
Это почти завершено, но еще не совсем. Мы инициализировали Git, добавили удаленный репозиторий, дали указание Git отслеживать определенный файл и подготовили фиксацию в удаленном репозитории, но мы еще не отправили фиксацию в удаленный репозиторий.
Чтобы отправить коммит (вашу «контрольную точку», которую мы создали выше с помощью команды Git commit), вам необходимо выполнить git push [remote-repo-name] [local-branch-name]
Чтобы выяснить имя удаленного репо, нам нужно вернуться к шагу 4 и увидеть, как мы его назвали, в данном случае «источник». Чтобы выяснить имя локальной ветки, вы можете либо выполнить git branch
, ИЛИ, если вы не меняли его по умолчанию, оно будет «главным» для главной ветки.
Как видите, мы действительно работаем над основной веткой локально. Итак, чтобы отправить код на Github, нам нужно ввести: git push origin master
Проверяя на стороне GitHub, мы видим только что отправленный мной коммит.
А также фактические изменения фиксации:
Надеюсь, это поможет вам начать работу с Git и GitHub. В этой рабочей демонстрации ради простоты были приняты некоторые упрощения (например, не создавать новую ветку для сохранения основной ветки, не объединять изменения, не разветвляться и т. д.), но эти знания являются основой для изучения этих вещей.
Как только вы наладите удобство использования Git таким образом, вам следует перейти к работе над различными ветвями, понимая, что такое «HEAD» и как им манипулировать, разветвлять репозитории, объединять изменения и т. д.