Для контроля версий и быстрого доступа к файлам из любой точки, в которой есть Интернет, обычно используют GitHub. На локальном компьютере для этой цели используют программу Git. Поскольку сейчас самым популярным редактором кода является Visual Studio Code, рассмотрим, как подключить Git к этой программе и отправлять данные в репозиторий на GitHub.

Установка Git, регистрация на  GitHub

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

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

Затем, залогинившись под своей учетной записью, создать первый репозиторий.

Создание репозитория

На компьютере вы запускаете Git Bash и вводите глобально свои данные, которые указывали при регистрации на GitHub.

Вместо "TesterGitUser" вы указываете свой логин на GitHub и вместо my_real_email@gmail.com - тот email, который указывали при регистрации.

Клонирование репозитория с GitHub

С помощью терминала

Теперь можно создать или открыть проект с помощью VSCode, инициализировать Git для этого проекта (по сути определенной папки на вашем компьютере). Для этого вы запускаете в этой папке VSCode, затем открываете терминал через пункт меню Terminal → New Terminal (или сочетанием клавишCtrl+ Shift + ` - или Ё в русской клавиатуре - сразу под клавишей Esc). Проверьте, чтобы  терминал был Git Bash по типу (хотя это не настолько принципиально, но удобно), а затем напечатайте команду:

Знак $ терминал поставит без вашего участия. Ваша задача - правильно напечатать команду ))

Кстати, для привычных нам Ctrl+С => Ctrl +V в Git Bash есть замена:

копирование: Ctrl + Ins, а вставка: Shift + Ins

В терминале вы увидите примерно такую строку:

Initialized empty Git repository in _____путь к вашей папке с проектом_____/.git

В вашей папке с проектом при этом появится скрытая папка .git, в которой Git, как программа, складывает свои файлы для управления версиями вашего проекта.

Теперь вы можете клонировать ваш репозиторий, созданный на GitHub,  с помощью команды

Если ваш проект содержит только файл Readme.md, то в папке с проектом на вкладке Files вы увидите только его. Если же вы клонируете чей-то проект с набором готовых к использованию файлов, то все они будут у вас в папке уже вашего проекта.

В процессе клонирования с помощью команды $ git clone автоматически создается удаленное подключение к исходному репозиторию (такое соединение называется origin). Это позволяет разработчикам, создающим локальную копию центрального репозитория, легко загружать вышестоящие изменения или публиковать локальные коммиты. Именно поэтому большинство проектов на основе Git называют свой центральный репозиторий origin.

Визуально

Инициализацию и клонирование репозитория можно сделать также из-под графического интерфейса. Для этого вам нужно переключиться во вкладку Контроля версий - в английской версии Source Control (Ctrl+Shift+G). На скриншоте внизу иконка вкладки подсвечена зеленой обводкой.

Вначале вы должны инициализировать репозиторий нажатием кнопки Initialize Repository.

Теперь у вас появилась строка меню справа, которая позволяет клонировать Git репозиторий (Clone Git Repository). Нажатие на эту ссылку приводит к появлению выпадающего поля ввода сверху, в котором вы добавляете скопированную ссылку из своего Git-профиля. Вам нужно будет указать папку, куда вы собираетесь клонировать файлы.

Инициализация и клонирование репозитория

После клонирования VSCode спросит у вас, хотите ли вы открыть папку с клонированным репозиторием или добавить его в существующее рабочее пространство (Would you like to open the cloned repository, or add it to current workspace?). Удобней всего, пожалуй, открывать в новом окне.

В папке с проектом появится файл Readme.md, который вы добавили  при создании своего репозитория.

Добавление файлов в проект и первый коммит

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

Изменения в файлах в VSCode


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

Дело в том, что Git  - это программа, которая позволяет вам сохранять изменения во всех ваших файла проекта на локальном компьютере. Но при этом, как и любая другая программа, сама она ничего делать не будет. Ваш браузер ведь тоже не ищет сайты без вашего участия? Поэтому для начала вам  нужно сказать (в терминале) или показать (в VSCode) программе Git на вашей машине, что именно вы хотите записать в виде версии ваших файлов. Для этого и существуют коммиты (commit). И, кстати, это все изначально будет сохраняться именно на вашем компьютере, а не в сети. Уйдут файлы в сеть тоже только после того, как вы это запишите в виде команды в терминале или выполните в VSCoode.

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

Создаем коммит визуально

Чтобы изменения появились и на Github, нужно создать первый коммит. Коммит (commit) - это сохранение конкретной версии файла внутри Git.  В переводе с английского commit означает «фиксировать».  Обычно говорят "закоммитить в Git" - значит отправить в Git определенную версию файла, к которой потом можно будет вернуться.

Для этого переходите в VSCode на вкладку Source Control и записываете некий осмысленный для ваших действий комментарий в поле Message, добавляете с помощью кнопки "+" ваш комментарий и изменения для отправки, и нажимаете кнопку Commit. Если вы передумали добавлять какой-то файл в репозиторий, нажмите кнопку "-" рядом с ним.

Если нужно отправить или удалить все помеченные в качестве измененных файлы, нажмите на "+" или "-" в строке Changes. Там же можно отменить выбор.

Git commit и push в VSCode

Для того чтобы ваши изменения "улетели" к тому же и на GitHub, можно выбрать из выпадающего списка справа от кнопки Commit пункт Commit & Push.

Если вы находитесь не в главной ветке репозитория, Git предложит вам синхронизировать ваши действия с помощью кнопки Sync Changes 1, которая запустит команду pull, за которой следует командой push. При нажатии на кнопку синхронизации VSCode выдаст вам окно с предупреждением "This action will pull and push commits from and to "origin/branch_name". Т.е. сначала вы получите данные из этой ветки, а потом только отправите свои.

Отправляем коммит из терминала

В терминале мы не увидим визуально, какие файлы Git считает измененными. Для проверки этого существует команда

В случае ее использования вы можете получить что-то вроде такого сообщения (зависит от названий файлов в вашем проекте и изменений в них):

То есть здесь видно, какие файлы были изменены и есть подсказка, какую команду использовать в терминале. Например, для того, чтоб отправить коммит только об index.html, нужно написать

После указания, какие файлы подлежат коммиту, нужно сделать этот самый коммит командой:

Внутри Git создастся состояние файла, которой вы в него таким образом отправили (закоммитили). У него будет определенный хеш (что-то вроде id), по которому Git его всегда может "узнать". Поэтому вы можете вернуться к этому файлу в его "закоммиченном" состоянии.

Чтобы объединить добавление файлов с отправкой коммита, можно записать команду

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

Кстати, для отмены команды git add используется команда git reset.

Просмотр коммитов

Для просмотра истории коммитов существует команда

После этого вам Git  вам выдаст список коммитов, в котором для каждого будет указан номер (хэш), автор, дата/время и ваш комментарий. Именно хэш вы можете использовать для возврата к какому-либо состоянию вашего файла + команда

Отправка файлов на GitHub

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

В данном случае origin - это основная ветка удаленного репозитория, main - название современной главной ветки в репозитории (ранее обычно было master).

Однако тут можно получить ошибку. Дело в том, что если вы клонировали файлы с определенного удаленного репозитория, как описывалось в самом начале, то все ок - ваши изменения уйдут на GitHub и отобразятся там в скором времени. Но, если вы делали изменения лишь на локальной машине, например, в абсолютно новом проекте, хоть и создали удаленный репозиторий, ничего никуда не отправится, т.к. что такое origin Git неизвестно.

Для того чтобы ваш проект был связан, как origin с репозиторием на GitHub, нужно сначала указать ссылку на него в команде

Причем очень желательно сделать это в самом начале, еще до первого коммита. А потом уже выполнить push

Для того чтобы проверит путь к вашему удаленному репозиторию, наберите команду

Если есть какие-либо проблемы с определением удаленного репозитория, используйте команду

Получение последних коммитов из удаленного репозитория

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

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

В случае, если нужно загрузить и использовать все изменения, появившиеся на Github, нужно выполнить команду $ git pull .

Ветки репозитория. Создание новой ветки

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

Под веткой принято понимать независимую последовательность коммитов в хронологическом порядке. Однако конкретно в Git реализация ветки выполнена как указатель на последний коммит в определенной ветке. После создания ветки уже новый указатель ссылается на текущий коммит.

Имя основной ветки Git-проекта по умолчанию — master (однако на GitHub часто это main),  и она создается сразу при инициализации репозитория. Эта ветка ничем не отличается от остальных и также ее можно переименовать, но по договоренности master (main) принято считать главной веткой в проекте.

Используем терминал

Для того чтобы создать ветку из терминала, нужно написать команду

Переключиться на новую (или любую созданную) ветку можно командой git checkout:

Можно не только создать ветку, но и сразу на нее переключиться, немного модифицировав команду checkout:

После внесения изменений в новой ветке необходимо сделать коммит, чтобы сохранить код. Для этого используйте команды: git add . А затем можно "запушить", т.е. отправить добавленные файлы в новую ветку, но уже на удаленном репозитории:

Вы можете проверить свой репозиторий на Github - там должна появиться новая ветка со всеми файлами, которые вы в нее добавили.

Визуальное создание веток в Visual Studio Code

То же самое можно проделать с помощью программы Visual Studio Code, причем находясь в любой вкладке Visual Studio Code.

Вам нужно кликнуть по названию текущей ветки (тут тоже обычно это main или master) в нижней строке Visual Studio Code и ввести название новой ветки, а затем выбрать пункт меню Create new branch.

VSCode создание новой веткиGit

Затем вы каким-то образом меняете свои файлы, добавляете их для коммита знаком "+", как это описывалось ранее, вводите комментарий и выполняете первый коммит уже для новой ветки. Если вам нужно отправить файлы на Github, а там эта ветка еще не существует, то при выборе опции Commit & Push вы получите запрос, который предложит вам эту ветку опубликовать. Нажимайте "Ок" и через некоторое время проверяйте ее на сервере.

Переключение между ветками

Через терминал

Для переключения между ветками Git существует команда

где branch_name - это имя нужной вам ветки.

Визуально

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

Переключение между ветками git в VSCode s

Переименовываем ветку

Для локальной ветки (только на вашем компьютере)

Прежде чем вы что-то будете переименовывать, убедитесь, что вы выбрали ветку, которую хотите переименовать:

Если вы хотите посмотреть все локальные ветки, используйте следующую команду:

Чтобы переименовать текущую ветку Git, добавьте к команде флаг -m:

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

Для ветки в репозитории Github

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

Выгрузите новую ветку и «закрепите» её за локальной командой

Визуально в VSCode

Переименовать ветку вы можете, нажав Ctrl + Shift + P (вызов окна команд из меню Help → Show All Commands), введя часть слова Rename или  полностью и выбрав команду Rename Branch. Вводите нужное имя и контролируете, что оно появилось в строке VSCode внизу слева.

Переименование ветки

Слияние веток - merge

Для слияния веток, как вы догадались уже, наверное, используют команду

Однако процесс может пройти просто и не очень просто в том случае, если история веток шла разными путями, например, правки вносились разными разработчиками. Возможно сначала вам нужно будет выполнить команду $ git pull для того, чтобы забрать изменения с удаленного репозитория, а потом уже выполнять слияние.

Временами имеет смысл сначала сделать $ git rebase branch_name для того, чтобы выравнять историю изменений, а потом уже совмещать ветки.

Удаление ветки

В терминале

Для удаления локальной ветки служит команда

С репозитория на Github

Тут команда несколько длиннее:

Визуальное выполнение команд в Visual Studio Code

Находясь на вкладке Source Control (контроль версий) в Visual Studio Code, вы можете в верхней строке меню этой вкладки выбрать любую команду, которая вам необходима на данный момент. Некоторые наиболее часто используемые команды вынесены в виде кнопок в строку меню этой вкладки.

Команды Git в VSCode

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

Пункт меню Show Git Output покажет вам консоль Git-команд в отдельном терминале. При желании вы можете с ними подробнее разобраться в каждом отдельном случае.

Автор: Админ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *