Как подключиться к репозиторию github
Перейти к содержимому

Как подключиться к репозиторию github

  • автор:

Как подключиться к нужному репозиторию github?

Есть репозиторий на гитхаб, я скачал файлы методом кнопки download вместо того что бы клонировать. И за этого файлы никак не связанны с тем репозиторием. Как сделать что бы файлы на моем пк подключились к тому репозиторию? ( Изменение сделал в локальных файлах, поэтому клонировать тот с гитхаба не вариант )

Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 13 янв 2020 в 6:18
2,161 3 3 золотых знака 19 19 серебряных знаков 35 35 бронзовых знаков

Сами же написали — «клонировать», только в новую папку, а потом в клоне заменить на ваши измененные, закомитить и запушить.

13 янв 2020 в 6:30

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Это делается командой git remote add , но делать её можно только на существующем репозитории, так что вам понадобится ещё и git init . Потом вам понадобится получить из репозитория коммиты командой git fetch и сделать git reset чтобы вносить свои изменения не с нуля, а начиная с головы репозитория.

git init git remote add origin url_репозитория git fetch origin git reset --mixed origin/master git add измененные файлы git commit -m "комментарий к коммиту" git push -u origin master 

URL репозитория можно получить нажав на ту самую кнопку Clone в интерфейсе github.

Как начать работать с GitHub

  1. Создаем на сайте GitHub репозиторий. В нашем случае git@github.com:obemgcabazn/*имя репозитория*.git
  2. Открываем в папке проекта командную строку и выполняем команду git init . Она создаст папку .git
  3. git remote add origin https://github.com/obemgcabazn/*имя репозитория*.git Привязываем папку к нашему репозиторию на GitHub (origin — это синоним «удаленного репозитория»).
  4. git add . — эта команда добавит в индекс все файлы из папки
  5. git add -u — (u — updated) добавить в stage файлы измененные с последнего коммита файлы
  6. git status покажет, что на данный момент находится в индексе
  7. git rm -r —cached /frontend/psd/. — Если нам не нужно передавать какие-то файлы в коммит, то можем удалить их из индекса командой rm . Здесь нужно быть внимательным, так как без флагов эта команда удалит и файлы с жесткого диска.
    • Чтобы оставить файлы на диске и удалить их из индекса, есть флаг —cached
    • Если нужно удалить все файлы из индекса, лежащие в какой-то определенной папке, то нужно поставить флаг -r . Чтобы пройти рекурсивно по всем файлам.

Добавить SSH ключи

Если не работает по причине нехватки прав, то, возможно проблема с SSH ключами. Нужно запустить Gti Bash и набрать следующую команду: ssh-keygen -t rsa -C «myemail@mail.ru» . Конечно, указать свой почтовый ящик. На все вопросы нажимаем Enter. После выполнения, в каталоге C:\Documents and Settings\username\.ssh появятся файлы id_rsa и id_rsa.pub.

Далее на GitHub.com заходим в аккаунт в Settings -> SSH and GPG keys -> «New SSH key». В Заголовок вставляем что угодно, что поможет потом понять на какой компьютер установлен ключ (например, имя или место компьютера), а в поле key вставляем содержимое id_rsa.pub .

После этого гитхаб должен перестать ругаться на отсутствие прав доступа.

Часто используемые команды

  • git add файлы — добавляет файлы в индекс
  • git commit — отправляет из индекса в хранилище для дальнейшей отправки (git push) в удаленный репозиторий
  • git reset — файлы заменяет файлы в индексе файлами из последнего коммита
  • git checkout файлы — заменяет файлы проекта ни диске файлами из индекса
  • git push origin master — отправляет файл на сервер, чтобы не вводить каждый раз логин/пароль, воспользуйтесь флагом ‘-u’

Чтобы создать новую ветку, нужно использовать команду git branch [Название_ветки] . Если написать просто git branch — покажет список существующих веток.

git checkout [Название ветки] — выбор ветки

Чтобы создать ветку и сразу ее выбрать git checkout -b [Новая ветка]

Интеграция с GitHub — Введение в Git

Сейчас у нас есть репозиторий с двумя коммитами. Содержимое директории hexlet-git выглядит так:

ls -a .git PEOPLE.md README.md 

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

Как добавить репозиторий

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

Добавим наш репозиторий на GitHub:

  1. Зарегистрируйтесь на GitHub и создайте ssh-ключи по инструкции . SSH-ключи — это наиболее безопасный способ работы с GitHub, поэтому важно разобраться с ними
  2. Создайте репозиторий на GitHub. Назовите его hexlet-git. Важно, чтобы репозиторий создавался пустым, поэтому не отмечайте галочки, добавляющие файлы
  3. На странице репозитория вы увидите готовые команды для подключения созданного репозитория на GitHub к уже существующему репозиторию у вас на компьютере: Выполните эти шаги:

# Подробнее эти команды мы разберем позже git remote add origin git@github.com:/hexlet-git.git git branch -M main git push -u origin main 

После этой команды репозиторий, созданный на github.com, «соединяется» с локальным репозиторием hexlet-git. Здесь может возникнуть вопрос: «Почему соединяется? Разве это не один и тот же репозиторий?».

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

Каждый репозиторий на GitHub и на компьютере у разработчика — это отдельные полноценные репозитории. Система Git связывает эти отдельные репозитории, объединяет их общей историей и добавляет возможность обмениваться изменениями:

В примере выше именно команда git push отправляет изменения во вновь созданный репозиторий.

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

Теперь не важно, какие изменения делаются в локальном репозитории. На GitHub все коммиты попадут только после команды git push , поэтому не забывайте делать ее. Бывает такое, что разработчик случайно удаляет локальный репозиторий, забыв запушить изменения — применить команду git push .

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

Как клонировать репозиторий

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

Единственное ограничение — он не сможет запушить изменения, так как GitHub не дает напрямую менять чужие репозитории.

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

Клонировать репозиторий можно с помощью команды git clone . Полную команду для клонирования можно получить на странице репозитория. Для этого нажмите большую кнопку Code, перейдите на вкладку SSH и скопируйте содержимое:

/hexlet-git.git cd hexlet-git ls -la # Если эта операция проходит первый раз, # То вы можете увидеть такое подобное сообщение The authenticity of host github.com cannot be established. RSA key fingerprint is SHA256: хххххххххх Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added github.com (RSA) to the list of known hosts. # Наберите yes и нажмите Enter 

Мы получили точную копию репозитория, который был у нас до удаления директории hexlet-git.

Как получить изменения с GitHub

Разработчики не только отправляют свои изменения на GitHub, но и забирают их оттуда. Чаще всего это изменения, сделанные другими разработчиками проекта, но необязательно. Бывает такое, что один разработчик работает над одним проектом с разных компьютеров, на каждом из которых своя собственная копия репозитория.

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

Считается, что достаточно вызывать git pull , но это может приводить к созданию ненужных коммитов, из-за которых становится сложнее следить за историей изменений.

Правильная работа с git pull требует знания таких вещей, как ветвление и git rebase . Они довольно сложны для новичков, поэтому мы рассмотрим их позже, когда появится хоть какой-то опыт работы с Git.

Выводы

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

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

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

Самостоятельная работа
  1. Выполните все шаги из урока, создайте и добавьте ssh-ключи на GitHub по инструкции
  2. Добавьте новый файл NEW.md с произвольным содержимым в репозиторий. Для этого нужно выполнить коммит
  3. Залейте изменения на GitHub с помощью git push
  4. Обновите страницу репозитория на GitHub. Там должен появиться последний коммит — те изменения, которые были совершены
Дополнительные материалы
  1. Цикл git-разработки (init, commit, push on GitHub)
  2. GitHub — Настройка и конфигурация учетной записи
  3. Создание SSH-ключа для работы с GitHub по SSH

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

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

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

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

About collaboration in a personal repository

To collaborate with users in a repository that belongs to your personal account on GitHub.com, you can invite the users as collaborators.

If you want to grant more granular access to the repository, you can create a repository within an organization. For more information, see «Access permissions on GitHub.»

Private forks inherit the permissions structure of the upstream repository. This helps owners of private repositories maintain control over their code. For example, if the upstream repository is private and gives read/write access to a team, then the same team will have read/write access to any forks of the private upstream repository. Only team permissions (not individual permissions) are inherited by private forks.

Inviting a collaborator to a personal repository

You can send an invitation to collaborate in your repository directly to someone on GitHub.com, or to the person’s email address

GitHub limits the number of people who can be invited to a repository within a 24-hour period. If you exceed this limit, either wait 24 hours or create an organization to collaborate with more people. For more information, see «Creating a new organization from scratch.»

  1. Ask for the username of the person you’re inviting as a collaborator. If they don’t have a username yet, they can sign up for GitHub. For more information, see «Signing up for a new GitHub account.»
  2. On GitHub.com, navigate to the main page of the repository.
  3. Under your repository name, click

Settings. If you cannot see the «Settings» tab, select the

Screenshot of a repository header showing the tabs. The

dropdown menu, then click Settings.

Further reading

  • «Permission levels for a personal account repository»
  • «Removing a collaborator from a personal repository»
  • «Removing yourself from a collaborator’s repository»
  • «Organizing members into teams»

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

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