Как связать локальный и удаленный репозиторий github

Обновлено: 24.04.2024

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

Связь локальной копии проекта, с удаленным сервером на гите. Работа в комманде.

  • Локальная версия сайта
  • Удаленный репозиторий git
  • Git flow в команде
  • Testing
  • Доставка на pred_prod
  • Testing
  • Доставка на прод

Заводим локальный проект

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

Пропустить дальнейшие инструкции на этом этапе

Инициализация пустого Git-репозитория в директории /path/to/project/.git/

Создаем файл конфигурации неотслеживаемых Git файлов и директорий и добавляем туда необходимое.

git commit -m "ignore file"

Добавляем под git файл ".ignore" и коммитим его.

git Начать отслеживать (добавить под версионный контроль) все остальные файлы ("." - все файлы, которые не были исключены .gitignore)

git commit -m "init"

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

Далее, идем на git сервер - Подключаемся через Putty или ssh-client

chmod g+s projectName

chmod u+s projectName

Перейти в созданный каталог

Инициализирует репозиторий без рабочего каталог

git config core.sharedRepository true

Указываем, что данные репозиторий общий для группы пользователей.

find . -type d -exec chmod g+sw <> ;

Назначаем всем поддиректория в проекте SetGid

find . -type f -exec chmod g+w <> ;

Назначаем всем файлам в иерархии +Write для группы

Уходим с сервера

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

  • Склонирукт репозиторий в ./Git/
  • Добавит ссылку на внешний репозиторий как origin
  • Cклонирует весь проект из удаленного репозитория (кроме того что указано в .gitignore)

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

Проверяем, лежит ли проект уже под каким-то удаленным репозиторием

Eсли ответит, что то типа:

git remote rm origin

Eсли не ответит ничего, пропускаем

git push -u origin master

Делаем push локальных изменений в удаленный репозиторий, создаем и связываем локальную ветку master с удаленной веткой origin master

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

Git Remote в Git

Команда git remote используется для выполнения удаленных подключений, таких как подключение локального репозитория Git к удаленному репозиторию GitHub.

Git remote — это просто соединение между локальным репозиторием и репозиторием GitHub. Через git remote мы предоставляем имя репозиторию, через которое мы можем ссылаться на репозиторий GitHub.

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

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

Возвращаясь к той же странице GitHub, которую мы оставили выше, обратите внимание, что у нас есть раздел с именем …or push an existing repository from the command line.

Подключение локального репозитория к удаленному репозиторию GitHub

Подключение локального репозитория к удаленному репозиторию GitHub

  1. Откройте свой Git Bash и перейдите к хранилищу, которое необходимо связать.

First_Project_Repo

  1. Проверьте, чист ли репозиторий, используя команду git status.

2. Проверьте, чист ли репозиторий, используя команду git status.

git_remote

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

  1. Теперь с помощью приведенного выше URL-адреса мы свяжем репозиторий. Чтобы связать репозиторий, выполните следующую команду и нажмите клавишу enter:

git_remote_add_origin

Как только это будет сделано, локальный репозиторий будет связан с репозиторием GitHub.

Примечание: Пожалуйста, используйте свой собственный URL-адрес репозитория для ссылки.

Как проверить, подключен ли локальный репозиторий к удаленному репозиторию?

Чтобы проверить, связали ли мы наш репозиторий или нет, снова выполните команду git remote

git_remote_origin

Как видно, исходный репозиторий доступен. Продолжайте и используйте команду git remote-v для просмотра того же результата вместе с URL-адресом, как показано на рисунке.

Подключение локального репозитория к удаленному репозиторию GitHub

В последнем уроке мы познакомились с командой Git fetch и Read more

В одной из последних статей мы узнали о команде Git Read more

Мы уже знаем, как вносить изменения в локальное хранилище и Read more

Команда git push при выполнении перемещает изменения, внесенные пользователем на Read more

"Клонирование" означает создание идентичных особей естественным или искусственным путем. Клонирование Read more

Сегодня мы узнаем, как скопировать чужой репозиторий в наш аккаунт Read more

Команда git push при выполнении перемещает изменения, внесенные пользователем на локальном компьютере, в удаленный репозиторий. После того как пользователи клонировали удаленный репозиторий и внесли необходимые изменения в свое локальное устройство, эти изменения должны быть перенесены в удаленный репозиторий. Причина в том, что они являются общими и используются другими пользователями. Команда git push делает это. Эти изменения представляют собой обязательства, выполненные в репозитории, а не незафиксированные изменения (если таковые имеются).

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

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

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

Приведенного выше изображения достаточно для понимания концепции в двух словах.

Git Push

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

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

После завершения всех изменений пользователь затем фиксирует все изменения в локальном репозитории.

А затем передает эти изменения на удаленный сервер. Наконец, он синхронизирует локальный и удаленный репозитории.

Синтаксис команды git Push в Git

Выполнение команды git push происходит путем ввода следующей команды:

git push

remote_repo: это имя (или псевдоним) удаленного репозитория, в который мы переносим изменения.

branch_name: это ветвь, которую пользователь толкает в удаленный репозиторий.

Представьте себе, что ветвь (branch) в Git подобна ветвям в дереве. Каждая ветвь представляет собой новую функцию или модификацию, находящуюся в стадии разработки. Кроме того, основная ветвь — это стабильный код, подобный стволу дерева, также называемый master branch (главной ветвью). Что, в свою очередь, помогает нестабильному коду ветвей держаться подальше от стабильного основного кода.

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

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

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

  • У вас раздвоенный репозитория на GitHub.
  • Вы клонировали один и тот же репозиторий на локальную машину.

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

В качестве хорошей практики сначала проверьте, что у вас есть чистый репозиторий с помощью команды git status (никаких ожидающих изменений для фиксации).

Git Push

После выполнения команды git status появятся следующие строки:

On branch master: означает, что в данный момент мы находимся в главной ветви. Поскольку других ветвей пока нет, мы по умолчанию находимся в главной ветви.

Your branch is up to date with origin/master: Origin — это имя удаленного репозитория, которое мы дали при подключении локального репозитория к удаленному репозиторию.

Последовательность действий

  1. Перечислите все файлы с командой ls в репозитории.

Git Push

Так как существует только один файл (README.md это всего лишь инструкция), давайте внесем некоторые изменения в его содержание.

  1. Откройте файл с помощью вашего любимого редактора и внесите в него любые изменения.
  2. Мы изменили файл на следующий код.

changed_web_page_html

  1. Добавьте внесенные изменения в промежуточную область и зафиксируйте их.

committing_clone

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

git push origin master

git_push

  1. Пользователь получает приглашение предоставить учетные данные с помощью GitHub в качестве части безопасности. Введите свои учетные данные и нажмите на кнопку входа в систему.

github

git_push_command

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

1в4522а..285f559: показывает хэш-значение обеих ветвей. Таким образом, хэш-значение конечного коммита, отраженного на GitHub, равно 285f559.

master -> master: строка master — > master показывает исходную ветвь, из которой происходит слияние с целевой ветвью. В приведенном выше сценарии обе ветви являются главными.

Строка Writing Objects: 100% имеет важное значение. В Git можно сказать, была ли команда push выполнена успешно или нет, только взглянув на эту строку. Если она показывает 100%, то все изменения успешно перенесены в облако.

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

Варианты Git Push

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

Prune Option

— опция prune в команде git push удалит ветвь XYZ из удаленного репозитория, если в локальном репозитории не существует ветви с таким же именем.

Использование: git push –prune remote XYZ

Dry Run Option

Эта опция будет выполнять и показывать выполнение команды git push, но не будет отправлять никаких обновлений в удаленный репозиторий.

Использование: git push –dry-run

Atomic Option

Эта опция в git Push обеспечивает атомарную операцию на удаленном репозитории, т. е. либо каждую ссылку обновляет, либо вообще ничего.

git push –atomic

All Option

Все опции будут выталкивать все ветви и их зафиксированные изменения в удаленный репозиторий.

Использование: git push-all

В последнем уроке мы познакомились с командой Git fetch и Read more

В одной из последних статей мы узнали о команде Git Read more

Мы уже знаем, как вносить изменения в локальное хранилище и Read more

"Клонирование" означает создание идентичных особей естественным или искусственным путем. Клонирование Read more

Сегодня мы узнаем, как скопировать чужой репозиторий в наш аккаунт Read more

Все данные, доступные в локальном репозитории, могут быть загружены в Read more

«Клонирование» означает создание идентичных особей естественным или искусственным путем.

Клонирование в Git — это процесс создания идентичной копии удаленного репозитория Git на локальную машину.

 git Clone

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

Как работает клонирование в Git?

Многие люди хотят создать общий репозиторий, чтобы позволить команде разработчиков публиковать свой код на GitHub / GitLab / BitBucket и т. д. Репозиторий, загружаемый в сеть для совместной работы, называется вышестоящим репозиторием или центральным репозиторием.

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

 git Clone

Что касается приведенного выше изображения, то процесс клонирования работает на следующих этапах:

Клонирование репозитория: пользователь начинает работу с вышестоящего репозитория на GitHub. Процесс начинается с клонирования репозитория на локальную машину. Теперь у пользователя есть точная копия файлов проекта в их системе, чтобы внести изменения.

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

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

Примечание: владелец репозитория может разрешить / запретить прямые изменения в Центральном репозитории, установить различные уведомления о любом изменении, перенесенном в центральное хранилище и многое другое.

Как использовать команду git Clone

Клонирование в Git может быть сделано на собственном репозитории или в любом другом репозитории.

Как клонировать репозиторий или использовать команду git Clone?

Клонирование репозитория из GitHub — это простой процесс. Но, прежде чем клонировать, пожалуйста, убедитесь, что у вас есть репозиторий на вашем аккаунте GitHub.

Каковы основные различия между раздвоением и клонированием?

Чтобы очистить свой разум от воздуха, если он у вас есть, давайте посмотрим, чем отличаются эти два термина:

Difference between Git Clone and Git Fork

Разветвление делается на аккаунт github, а клонирование осуществляется с использованием git. При форке репозитория вы создаете копию исходного репозитория (вышестоящего репозитория), но этот репозиторий остается в вашей учетной записи GitHub. В то же время, когда вы клонируете репозиторий, он копируется на вашу локальную машину с помощью Git.

Раздвоение — это понятие, а клонирование — это процесс. Разветвление — это просто содержащая отдельную копию репозитория команда, которая не участвует в этом процессе. Клонирование выполняется с помощью команды «git clone», и это процесс получения всех файлов кода на локальную машину.

Learn to work with your local repositories on your computer and remote repositories hosted on GitHub.

Adding a remote repository

To add a new remote, use the git remote add command on the terminal, in the directory your repository is stored at.

The git remote add command takes two arguments:

For more information on which URL to use, see "About remote repositories."

Troubleshooting: Remote origin already exists

This error means you've tried to add a remote with a name that already exists in your local repository.

To fix this, you can:

  • Use a different name for the new remote.
  • Rename the existing remote repository before you add the new remote. For more information, see "Renaming a remote repository" below.
  • Delete the existing remote repository before you add the new remote. For more information, see "Removing a remote repository" below.

Changing a remote repository's URL

The git remote set-url command changes an existing remote repository URL.

Tip: For information on the difference between HTTPS and SSH URLs, see "About remote repositories."

The git remote set-url command takes two arguments:

The next time you git fetch , git pull , or git push to the remote repository, you'll be asked for your GitHub username and password. When Git prompts you for your password, enter your personal access token (PAT). Alternatively, you can use a credential helper like Git Credential Manager. Password-based authentication for Git has been removed in favor of more secure authentication methods. For more information, see "Creating a personal access token."

You can use a credential helper so Git will remember your GitHub username and personal access token every time it talks to GitHub.

Troubleshooting: No such remote '[name]'

This error means that the remote you tried to change doesn't exist:

Check that you've correctly typed the remote name.

Renaming a remote repository

Use the git remote rename command to rename an existing remote.

The git remote rename command takes two arguments:

  • An existing remote name, for example, origin
  • A new name for the remote, for example, destination

Troubleshooting: Could not rename config section 'remote.[old name]' to 'remote.[new name]'

This error means that the old remote name you typed doesn't exist.

You can check which remotes currently exist with the git remote -v command:

Troubleshooting: Remote [new name] already exists

This error means that the remote name you want to use already exists. To solve this, either use a different remote name, or rename the original remote.

Removing a remote repository

Use the git remote rm command to remove a remote URL from your repository.

The git remote rm command takes one argument:

Removing the remote URL from your repository only unlinks the local and remote repositories. It does not delete the remote repository.

Note: git remote rm does not delete the remote repository from the server. It simply removes the remote and its references from your local repository.

Troubleshooting: Could not remove config section 'remote.[name]'

This error means that the remote you tried to delete doesn't exist:

Check that you've correctly typed the remote name.

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Читайте также: