A3.2 Приложение C: Команды Git — Клонирование и создание репозиториев
Существует два способа создать Git репозиторий. Первый — клонировать его из существующего репозитория (например, по сети); второй — создать репозиторий в существующем каталоге.
git init
Чтобы превратить обычный каталог в Git репозиторий и начать версионировать файлы в нём, просто запустите git init .
Впервые мы продемонстрировали эту команду в разделе Создание Git-репозитория главы 2 на примере создания нового репозитория для последующей работы с ним.
Мы немного поговорили о смене названия ветки по умолчанию с «master» на что-нибудь другое в разделе Удалённые ветки главы 3.
Мы использовали эту команду для создания чистого репозитория для работы на стороне сервера в разделе Размещение голого репозитория на сервере главы 4.
Ну и наконец мы немного покопались во внутренностях этой команды в разделе Сантехника и Фарфор главы 10.
git clone
На самом деле git clone работает как обёртка над некоторыми другими командами. Она создаёт новый каталог, переходит внутрь и выполняет git init для создания пустого репозитория, затем она добавляет новый удалённый репозиторий ( git remote add ) для указанного URL (по умолчанию он получит имя origin ), выполняет git fetch для этого репозитория и, наконец, извлекает последний коммит в ваш рабочий каталог, используя git checkout .
Команда git clone используется в десятке различных мест в этой книге, но мы перечислим наиболее интересные упоминания.
Первоначальное знакомство происходит в разделе Клонирование существующего репозитория главы 2, где мы даём немного объяснений и приводим несколько примеров.
В разделе Установка Git на сервер главы 4 мы рассмотрели как использовать опцию —bare , чтобы создать копию Git репозитория без рабочей копии.
В разделе Создание пакетов главы 7 мы использовали git clone для распаковки упакованного с помощью git bundle репозитория.
Наконец, в разделе Клонирование проекта с подмодулями главы 7 мы научились использовать опцию —recursive чтобы упростить клонирование репозитория с подмодулями.
И хотя git clone используется во многих других местах в книге, перечисленные выше так или иначе отличаются от других вариантов использования.
Клонировать на github чужой репозиторий
Клонировал чужой репозиторий на свой компьютер, работаю с этим проектом и теперь хочу запушить его на свою страницу гитхаба в новый репозиторий. Выбивает мне ошибку:
unable to access. The requested URL returned error: 403
Как можно это исправить?
Отслеживать
67.9k 216 216 золотых знаков 77 77 серебряных знаков 219 219 бронзовых знаков
задан 15 мая 2018 в 19:19
65 2 2 серебряных знака 8 8 бронзовых знаков
Проще всего сначала форкнуть репозиторий и клонировать уже свой форк.
15 мая 2018 в 19:26
Если предположить, что Вы уже сделали форк (например, посредством hub fork ), вероятно, Вы делаете git push origin YourBranch вместо git push YourGitHubName YourBranch . Если нет, пожалуйста, добавьте в вопрос команды, которые Вы вводили в терминал. Спасибо.
15 мая 2018 в 19:34
git remote set-url origin github.com/USERNAME/REPOSITORY.git
5 янв 2019 в 17:44
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
403 это ошибка — Доступ запрещен Может вы по ошибке на чужой удаленный репозиторий отправляете? git remote show какие репозитории показывает?
Отслеживать
ответ дан 15 мая 2018 в 19:36
181 1 1 серебряный знак 15 15 бронзовых знаков
Судя по всему вы клонировали чужой репозиторий, к которому вам никто не давал доступа на запись. Доступ на чтение есть у всех, так как это публичный репозиторий, по этому вы смогли его клонировать. Вы можете выложить этот репозиторий на свой гитхаб, но тогда потеряется информация о том, что репозиторий был форкнут (ответвлен) от оригинального — это будет отдельный самостоятельный репозиторий. Обычно так делать не стоит, по этому я не буду рассматривать этот вариант более подробно.
Правильнее сделать так:

- Через интерфейс гитхаба форкнуть оригинальный репозиторий. Это создаст копию репозитория в вашем аккаунте и при этом гитхаб будет знать, что он ответвлен от оригинального и это вам позволит, например, создавать в него пулл-реквесты.
- Добавить ваш форк как удаленный репозиторий в вашем локальном репозитории. Скорее всего у вас оригинальный репозиторий назван как origin. Можно либо добавить свой с другим именем, либо изменить url у существующего. На мой взгляд, чтобы было меньше путаницы, лучше если origin будет ссылаться на основной для вас репозиторий, в который вы будете пушить (то есть ваш форк): git remote set-url origin . А для оригинального репозитория принято использовать имя upstream: git remote add upstream
Как залить в чужой репозиторий на GIthub?
Добрый день. Меня добавили в один прайват репо на github.(Получил уведомление You can now push to this repository.)
Нужно запилить несколько правок по коду и влить туда соответственно. Какой у меня порядок действий? Только без форка данного репо в свой github.
- Вопрос задан более трёх лет назад
- 16862 просмотра
1 комментарий
Оценить 1 комментарий
Решения вопроса 1

D’ @Denormalization
Добавить git remote add [url]
и пушить в него.
Или просто склонировать его и так же пушить.
Ответ написан более трёх лет назад

zigen @zigen Автор вопроса
push зальет только разницу между моей версией и версией на github?

D’ @Denormalization
zigen: push зальет все различия между локальной версией, и версией на гитхабе. Поэтому предварительно нужно сделать pull и смерджить. Затем можно спокойно пушить.
Ответы на вопрос 1

Alcohol & Ruby on Rails

1. Копируете себе локально репозиторий.
git clone url [folder]
cd [folder]
2. Создаете ветку [branch_name]
git checkout -b [branch_name]
3. Делайте изменения
4. Делаете один коммит или несколько.
git add . (если создавали новые файлы)
git commit -am «Added beautiful fixes»
5. Создаете удаленную ветку.
git push —set-upstream origin [branch_name]
В дальнейшем когда удаленная ветка создана то просто
git push
6. Создаете в интерфейсе github pull-request. Из вашей ветки в master.
7. автор или вы сами вливаете(merge)/отклоняете(decline) pull-request.
На этом этапе можно добавить комментарии или замечания к коду, что-то исправить.
8.Когда пул-реквест влили, вы локально переключаетесь в master и забираете все изменения
git checkout master
git pull
Если еще нужно что-то сделать повторяете шаги начиная со 2.
Клонирование репозитория из GitHub в GitHub Desktop
Также можно использовать GitHub для клонирования удаленных репозиториев в GitHub Desktop.
Tip: You also can use GitHub Desktop to clone repositories that exist on GitHub. For more information, see «Cloning and forking repositories from GitHub Desktop.»
- Sign in to GitHub.com and GitHub Desktop before you start to clone.
- On GitHub.com, navigate to the main page of the repository.
- Above the list of files, click

Code.

Open with GitHub Desktop.

Click Choose. and navigate to a local directory where you want to clone the repository.
Note: If the repository is configured to use LFS, you will be prompted to initialize Git LFS.