Как синхронизировать git и github

Работа с репозиторием слушателя

Репозиторий слушателя — это репозиторий, который создан инструктором для выполнения заданий на курсе. Имя репозитория будет online-13-имя-фамилия.

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

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

Для работы с ним локально, его нужно скопировать (клонировать). Для этого используется команда git clone. В этой команде вам нужно сменить имя “natasha-samoylenko” на имя в своем репозитории.

Команду git clone надо делать в каталоге, который не является репозиторием git.

В итоге, в текущем каталоге, в котором была выполнена команда git clone, появится каталог с именем равным имени репозитория. В моем случае — online-13-natasha-samoylenko.

Если вы перейдете в этот каталог, то увидите в нем содержимое репозитория на GitHub.

Работа с репозиторием

Предыдущая команда не просто скопировала репозиторий локально, но и настроила соответствующим образом Git:

  • был создан каталог .git
  • скачаны все данные репозитория
  • скачаны все изменения, которые были в репозитории
  • ваш репозиторий на GitHub настроен как remote для этого репозитория

Это значит, что теперь у вас готов полноценный репозиторий Git, в котором вы можете работать.

Обычно, последовательность работы будет такой:

  • перед началом работы, синхронизируете локальное содержимое с GitHub командой git pull (синхронизация из GitHub в локальный репозиторий)
  • редактируете какие-то файлы репозитория
  • добавляете их в staging командой git add
  • делаете commit с помощью git commit
  • когда вы готовы закачать локальные изменения на GitHub, делаете git push

Если вы работаете с заданиями с работы и дома, надо не забывать первый и последний шаг:

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

Синхронизация из GitHub в локальный репозиторий

Все команды выполняются внутри каталога репозитория (в примере выше — online-13-natasha-samoylenko)

Команда git pull:

Если содержимое локального репозитория одинаково с удаленным репозиторием — GitHub, вывод будет таким:

Если что-то было изменено, вывод будет примерно таким:

Добавление новых файлов или изменений в существующих файлах

Добавление всех новых файлов или изменений в существующих:

Если необходимо добавить конкретный файл (в данном случае — README.md):

Commit

При выполнении commit обязательно надо указать сообщение. Будет лучше, если сообщение будет со смыслом, а не просто “update” или подобное:

Push на GitHub

Для загрузки всех локальных изменений на GitHub, используется git push:

Перед выполнением git push, можно выполнить команду $ git log -p origin/main.. — она покажет какие изменения вы собираетесь добавлять в свой репозиторий на GitHub.

Русские Блоги

Git — локальная синхронизация проекта с удаленным репозиторием GitHub

Конкретные шаги заключаются в следующем

1 Установите Git

адрес:https://git-scm.com/

2 Настройка Git

После установки щелкните правой кнопкой мыши в любом месте на рабочем столе, чтобы выбрать, Git bash Here Откройте Shell.
конфигурация окна

Команда вводит следующие две строки кода:

Вы можете перейти к конкретным подробным шагамЛяо Xuefeng официальный сайтПерейти к проверке, эта статья только о том, как Локальный проект с Удаленный склад Синхронизировать.

3 Создать ключ SSH
  • Во-первых, в домашнем каталоге пользователя C:\Users\wangzhongjie Это мой каталог, посмотреть, если есть .ssh оглавление.

    Если есть, проверьте, есть ли в этом каталоге id_rsa с id_rsa.pub Два файла, эти два пары ключей, id_rsa Это закрытый ключ и не может быть раскрыт, id_rsa.pub Открытый ключ. , Если да, перейдите к следующему шагу, если нет, откройте Git Bash и введите следующую команду, чтобы создать ключ ssh.

затем Домашний каталог пользователя генерировать .ssh Каталог и эти два файла.

4 Добавьте ключ GitHub SSH

Нажмите Настройки

щелчок SSH and GPG keys

Создайте SSH key
put Домашний каталог пользователя Скопируйте содержимое файла открытого ключа в.

5 Создайте удаленный склад

шаг 1

Шаг 2

Шаг 3
Создание хранилища завершено

6 Создайте местный склад

Создайте тестовую папку в любом локальном каталоге.

я здесь D:\workSpace Создан один под test Каталог и инициализированы в Git склад.

7 Установите соединение между локальным складом и удаленным складом.

Вернуться только сейчас GitHub Тот, созданный на test Библиотека, копия SSH 。

назад Git Bash Введите следующий код.

Обратите внимание, что [email protected]:ithanmang/test.git Изменить на свой.
В этот момент удаленная библиотека устанавливает соединение с локальной библиотекой.

Затем создайте новый тестовый файл в локальной библиотеке hello.txt 。

add с commit

8 Синхронизируйте файлы на локальном складе с удаленным хранилищем

Введите код
$ git push -u orgin master
обнаружит, что он отказывается от слияния

Это потому, что при первом создании удаленного хранилища оно было создано по умолчанию README.md файл.

Поэтому в push Прежде чем вам нужно pull Давайте синхронизировать локальную библиотеку с удаленной библиотекой.
Введите следующий код
$ git pull origin master
origin: Является псевдонимом местной библиотеки
master: Название филиала
git pull origin master Обновление содержимого удаленной библиотеки до локальной.

В настоящее время содержимое локальной и удаленной библиотек совпадает, поэтому вы можете синхронизировать локально добавленные файлы с удаленной библиотекой.
Затем выполните: git push -u orgin master Команда для передачи содержимого локальной библиотеки в удаленную библиотеку.

Обновите удаленную библиотеку и найдите hello.txt Был загружен.

нота:При отправке в удаленную библиотеку лучше всего сначала обновить последнее содержимое удаленной библиотеки до локальной.

2.5 Основы Git — Работа с удалёнными репозиториями

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

Вполне возможно, что удалённый репозиторий будет находиться на том же компьютере, на котором работаете вы. Слово «удалённый» не означает, что репозиторий обязательно должен быть где-то в сети или Интернет, а значит только — где-то ещё. Работа с таким удалённым репозиторием подразумевает выполнение стандартных операций отправки и получения, как и с любым другим удалённым репозиторием.

Просмотр удалённых репозиториев

Для того, чтобы просмотреть список настроенных удалённых репозиториев, вы можете запустить команду git remote . Она выведет названия доступных удалённых репозиториев. Если вы клонировали репозиторий, то увидите как минимум origin — имя по умолчанию, которое Git даёт серверу, с которого производилось клонирование:

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

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

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

Обратите внимание на разнообразие протоколов, используемых при указании адреса удалённого репозитория; подробнее мы рассмотрим протоколы в разделе Установка Git на сервер главы 4.

Добавление удалённых репозиториев

В предыдущих разделах мы уже упоминали и приводили примеры добавления удалённых репозиториев, сейчас рассмотрим эту операцию подробнее. Для того, чтобы добавить удалённый репозиторий и присвоить ему имя (shortname), просто выполните команду git remote add <shortname> <url> :

Теперь вместо указания полного пути вы можете использовать pb . Например, если вы хотите получить изменения, которые есть у Пола, но нету у вас, вы можете выполнить команду git fetch pb :

Ветка master из репозитория Пола сейчас доступна вам под именем pb/master . Вы можете слить её с одной из ваших веток или переключить на неё локальную ветку, чтобы просмотреть содержимое ветки Пола. Более подробно работа с ветками рассмотрена в главе Ветвление в Git.

Получение изменений из удалённого репозитория — Fetch и Pull

Как вы только что узнали, для получения данных из удалённых проектов, следует выполнить:

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

Когда вы клонируете репозиторий, команда clone автоматически добавляет этот удалённый репозиторий под именем «origin». Таким образом, git fetch origin извлекает все наработки, отправленные на этот сервер после того, как вы его клонировали (или получили изменения с помощью fetch). Важно отметить, что команда git fetch забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками и не модифицирует то, над чем вы работаете в данный момент. Вам необходимо вручную слить эти данные с вашими, когда вы будете готовы.

Если ветка настроена на отслеживание удалённой ветки (см. следующий раздел и главу Ветвление в Git чтобы получить больше информации), то вы можете использовать команду git pull чтобы автоматически получить изменения из удалённой ветки и слить их со своей текущей. Этот способ может для вас оказаться более простым или более удобным. К тому же, по умолчанию команда git clone автоматически настраивает вашу локальную ветку master на отслеживание удалённой ветки master на сервере, с которого вы клонировали репозиторий. Название веток может быть другим и зависит от ветки по умолчанию на сервере. Выполнение git pull , как правило, извлекает (fetch) данные с сервера, с которого вы изначально клонировали, и автоматически пытается слить (merge) их с кодом, над которым вы в данный момент работаете.

Начиная с версии 2.27, команда git pull выдаёт предупреждение, если настройка pull.rebase не установлена. Git будет выводить это предупреждение каждый раз пока настройка не будет установлена.

Если хотите использовать поведение Git по умолчанию (простое смещение вперёд если возможно — иначе создание коммита слияния): git config —global pull.rebase «false»

Если хотите использовать перебазирование при получении изменений: git config —global pull.rebase «true»

Отправка изменений в удаленный репозиторий (Push)

Когда вы хотите поделиться своими наработками, вам необходимо отправить их в удалённый репозиторий. Команда для этого действия простая: git push <remote-name> <branch-name> . Чтобы отправить вашу ветку master на сервер origin (повторимся, что клонирование обычно настраивает оба этих имени автоматически), вы можете выполнить следующую команду для отправки ваших коммитов:

Эта команда срабатывает только в случае, если вы клонировали с сервера, на котором у вас есть права на запись, и если никто другой с тех пор не выполнял команду push . Если вы и кто-то ещё одновременно клонируете, затем он выполняет команду push , а после него выполнить команду push попытаетесь вы, то ваш push точно будет отклонён. Вам придётся сначала получить изменения и объединить их с вашими и только после этого вам будет позволено выполнить push . Обратитесь к главе Ветвление в Git для более подробного описания, как отправлять изменения на удалённый сервер.

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

Если хотите получить побольше информации об одном из удалённых репозиториев, вы можете использовать команду git remote show <remote> . Выполнив эту команду с некоторым именем, например, origin , вы получите следующий результат:

Она выдаёт URL удалённого репозитория, а также информацию об отслеживаемых ветках. Эта команда любезно сообщает вам, что если вы, находясь на ветке master, выполните git pull , ветка master с удалённого сервера будет автоматически влита в вашу сразу после получения всех необходимых данных. Она также выдаёт список всех полученных ею ссылок.

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

Данная команда показывает какая именно локальная ветка будет отправлена на удалённый сервер по умолчанию при выполнении git push . Она также показывает, каких веток с удалённого сервера у вас ещё нет, какие ветки всё ещё есть у вас, но уже удалены на сервере, и для нескольких веток показано, какие удалённые ветки будут в них влиты при выполнении git pull .

Удаление и переименование удалённых репозиториев

Для переименования удалённого репозитория можно выполнить git remote rename . Например, если вы хотите переименовать pb в paul , вы можете это сделать при помощи git remote rename :

Стоит упомянуть, что это также изменит имена удалённых веток в вашем репозитории. То, к чему вы обращались как pb/master , теперь стало paul/master .

Если по какой-то причине вы хотите удалить удаленный репозиторий — вы сменили сервер или больше не используете определённое зеркало, или кто-то перестал вносить изменения — вы можете использовать git remote rm :

При удалении ссылки на удалённый репозиторий все отслеживаемые ветки и настройки, связанные с этим репозиторием, так же будут удалены.

Работа со своим репозиторием заданий#

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

Если вы учитесь на курсе «Python для сетевых инженеров», эту часть НЕ надо выполнять. На курсе инструктор создает отдельный приватный репозиторий каждому слушателю. Все инструкции для курса по работе с git/github находятся на сайте курса.

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

Для создания своего репозитория на основе шаблона нужно:

нажать «Use this template» и создать новый репозиторий на основе этого шаблона

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

после этого готов новый репозиторий с копией всех файлов из исходного репозитория с заданиями

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

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

Для этого используется команда git clone:

По сравнению с приведённой в этом листинге командой, вам нужно изменить:

имя пользователя natenka на имя своего пользователя на GitHub;

имя репозитория my_pyneng_tasks на имя своего репозитория на GitHub.

В итоге, в текущем каталоге, в котором была выполнена команда git clone, появится каталог с именем репозитория, в моём случае – «my_pyneng_tasks». В этом каталоге теперь находится содержимое репозитория на GitHub.

Работа с репозиторием#

Предыдущая команда не просто скопировала репозиторий чтобы использовать его локально, но и настроила соответствующим образом Git:

создан каталог .git

скачаны все данные репозитория

скачаны все изменения, которые были в репозитории

репозиторий на GitHub настроен как remote для локального репозитория

Теперь готов полноценный локальный репозиторий Git, в котором вы можете работать. Обычно последовательность работы будет такой:

перед началом работы, синхронизация локального содержимого с GitHub командой git pull

изменение файлов репозитория

добавление изменённых файлов в staging командой git add

фиксация изменений через коммит командой git commit

передача локальных изменений в репозитории на GitHub командой git push

При работе с заданиями на работе и дома, надо обратить особое внимание на первый и последний шаг:

первый шаг – обновление локального репозитория

последний шаг – загрузка изменений на GitHub

Синхронизация локального репозитория с удалённым#

Все команды выполняются внутри каталога репозитория (в примере выше — my_pyneng_tasks).

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

Если были изменения, вывод будет примерно таким:

Добавление новых файлов или изменений в существующих#

Если необходимо добавить конкретный файл (в данном случае – README.md), нужно дать команду git add README.md . Добавление всех файлов текущей директории производится командой git add . .

Коммит#

При выполнении коммита обязательно надо указать сообщение. Лучше, если сообщение будет со смыслом, а не просто «update» или подобное. Коммит делается командой, подобной git commit -m "Сделаны задания 4.1-4.3" .

Push на GitHub#

Для загрузки всех локальных изменений на GitHub используется команда git push:

Перед выполнением git push можно выполнить команду git log -p origin/master.. – она покажет, какие изменения вы собираетесь добавлять в свой репозиторий на GitHub.

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

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