Общие сведения
Для участия в разработке документации на сайте Майкрософт вы можете локально создавать и редактировать файлы Markdown, клонировав соответствующий репозиторий документации. Чтобы получить разрешения Майкрософт на чтение и запись для соответствующего репозитория, нужно создать его вилку в учетной записи GitHub. Это позволит сохранять предлагаемые изменения. Затем изменения объединяются в центральном общем репозитории, доступном только для чтения, с помощью запросов на вытягивание.
Если вы раньше не работали с GitHub, посмотрите следующее видео, где представлен концептуальный обзор процесса создания вилок и клонирования репозиториев:
Создание вилки репозитория
Используя соответствующий репозиторий, создайте его вилку в своей учетной записи GitHub на сайте GitHub.
Персональная вилка необходима, поскольку все основные репозитории документации предоставляют доступ только для чтения. Чтобы внести изменение, вам нужно отправить из вилки в основной репозиторий . Чтобы ускорить этот процесс, сначала следует создать копию репозитория с доступом на запись. Вилка в GitHub решает эту задачу.
-
Перейдите в GitHub на страницу главного репозитория, а затем нажмите кнопку Fork (Создать вилку) вверху справа.
-
Если будет предложено, выберите плитку своей учетной записи GitHub в качестве расположения для создаваемой вилки. После этого в вашей учетной записи GitHub будет создана копия репозитория, называемая вилкой.
Добавление файлов в git репозиторий
Добавление файлов в репозиторий – это достаточно простая операция, мало чем отличающаяся от отправки изменений в отслеживаемых файлах в репозиторий. Мы уже не раз выполняли эту операцию в предыдущих уроках, но сделаем это ещё раз. Создадим новый репозиторий, для этого перейдите в каталог, в котором вы хотите его расположить и введите команду git init.
> git init
Создайте в каталоге файл README.md любым удобным для вас способом, мы сделаем это с помощью команды touch.
> touch README.md
Теперь проверим состояние отслеживаемой директории.
> git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) README.md nothing added to commit but untracked files present (use "git add" to track)
Как вы можете видеть: в рабочей директории есть один неотслеживаемый файл README.md. Git нам подсказывает, что нужно сделать для того, чтобы начать отслеживать изменения в файле README.md: необходимо выполнить команду git add, сделаем это.
> git add README.md
Посмотрим ещё раз на состояние.
> git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: README.md
Видно, что информация о появлении нового файла попала в stage. Для того чтобы это изменение зафиксировалось в репозитории необходимо выполнить команду git commit.
> git commit -m "add README.md file" add README.md file 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README.md
Теперь в рабочей директории и в stage нет объектов, информацию об изменении которых необходимо внести в репозиторий.
> git status On branch master nothing to commit, working tree clean
В репозиторий был сделан один коммит.
> git log --oneline 0bb6c94 add README.md file
9 ответов
Лучший ответ
- В вашем профиле GitHub есть кнопка . Он расположен в правом верхнем углу веб-страницы.
- Нажмите на нее, и вы увидите левое меню .
- Внутри этого меню найдите параметр и нажмите его.
- Вы увидите опцию для добавления нового ключа.
27
Evgeny Karkan
24 Июл 2016 в 22:19
-
сгенерируйте свой ключ
SSH — серийник
-
Визуализируйте свои ключи
ls ~ / .ssh
id_rsa id_rsa.pub
-
Запустить агент
eval
-
Запустить агент
ssh-add ~ / .ssh / id_rsa
8
Waldeyr Mendes da Silva
22 Май 2018 в 16:06
Мне нужно было указать, какой хост будет использовать какой SSH-ключ. В папке SSH на локальном компьютере, обычно в разделе , создайте / отредактируйте файл с именем , используя предпочтительный редактор, например vim или gedit .
И добавьте следующее с вашими git Host , HostName и ssh IdentityFile (путь к файлу закрытого ключа ssh):
3
Waqleh
23 Июл 2018 в 17:06
Получил после того, как потратил много времени …
В принятом ответе Shravan40 все было нормально, но я, идиот, добавил на github.com новый репозиторий с добавлением нового README.md, и это вызвало ошибку
После множества попыток я добавил новый репозиторий без нового README.md, и все было в порядке, но я не знаю причины. До вчерашнего дня при новой попытке я наконец заметил это …
Итак, мое решение в дополнение к ответу Shravan40s:
Может это кому то поможет …
-1
Ulli H
29 Июл 2016 в 14:43
За свой короткий опыт использования git с Linux я обнаружил, что есть два простых ответа на эту ошибку.
Запустите эти команды в этом порядке
Это изменит конфигурацию вашего файла конфигурации для использования источника HTTPS вместо SSH.
Теперь попробуйте запустить команды push или pull.
ИЛИ
Перезагрузите виртуальную машину Linux (если вы ее используете) и / или хост-машину. Перезагрузка неоднократно решала проблему.
-1
Blusteel408
6 Мар 2020 в 19:44
У меня была такая же проблема с моим ssh-соединением. Я пробовал работать через ssh, но не нашел рабочего решения. Итак, в этом случае я изменил свой удаленный URL-адрес с SSH на HTTPS. Я использовал команду: . Вы можете увидеть, что ваш удаленный URL-адрес изменился, используя: .
Более подробную информацию можно найти здесь
Это изменит ваш удаленный URL-адрес на HTTPS, поэтому теперь вам нужно будет ввести свое имя пользователя и пароль GitHub, чтобы отправить свой проект в удаленное репо. Я знаю, что ssh проще, чем HTTPS, что означает, что вам не нужно вводить свое имя пользователя и пароль, но это может быть полезно, если вы не нашли решения для его исправления через ssh, и вы спешите, чтобы код в ваше репо.
5
shreeshr
9 Ноя 2019 в 17:52
- Сгенерируйте ключ SSH с помощью .
- Скопируйте вывод в буфер обмена
- Вставьте скопированный выше вывод в форму по адресу https://github.com/settings/ssh/new
27
Shravan40
17 Май 2020 в 12:17
-
убедитесь, что вы правильно назвали файлы «открытый ключ» и «закрытый ключ»; в точности как «id_rsa» и «id_rsa.pub». Это то, что вы можете найти в папке users / .ssh.
-
добавить публичный ключ в GitHub
-
Перезагрузите терминал (поддерживается bash) и попробуйте снова клонировать
Если у вас есть доступ для записи в репо, вы должны быть готовы выполнить эти изменения.
Говоря по опыту (потратив час), я не смог найти ни на одном форуме информации, в которой говорилось бы, что мы должны явно сохранять имена частного и общедоступного файла, как указано выше.
Удачного кодирования!
Vikas Pandey
21 Сен 2017 в 17:13
Если кто-то из вас сталкивается с такой же проблемой на Bitbucket, то вот решение:
Проблема: —— Демо @ L90TQCLQ MINGW64 / u / works (мастер) $ git clone ssh: //[email protected]: 5449 / rem / jenkinspipeline.git Клонирование в jenkinspipeline … [email protected]: В доступе отказано (публичный ключ). фатальный: не удалось прочитать из удаленного репозитория .
Убедитесь, что у вас есть правильные права доступа и репозиторий существует.
Решение: Демо @ L90TQCLQ MINGW64 / u / works (мастер) $ cat
Перейти к: https: //bitbucket.internal. abc.com/plugins/servlet/ssh/projects/REM/repos/jenkinspipeline/keys 1) Добавить ключи Скопируйте / вставьте туда значение ключа id_rsa.pub:
Готово! Теперь вы можете клонировать репозиторий git
KDemo @ L90TQCLQ MINGW64 / u / works (master) $ git clone ssh: //[email protected]: 5449 / rem / jenkinspipeline.git Клонирование в ‘jenkinspipeline’ … удаленный: Перечисление объектов: 1146, сделанный. удаленный: Подсчет объектов: 100% (1146/1146), готово. remote: Сжатие объектов: 100% (987/987), готово. удаленный: Всего 1146 (дельта 465), повторно используется 0 (дельта 0) Принимающие объекты: 100% (1146/1146), 149,53 КБ | 172.00 КБ / с, готово. Разрешение дельт: 100% (465/465), выполнено.
nk07
12 Дек 2019 в 10:57
Часто задаваемые вопросы
Хотя в большинстве случаев Импорт выполнен успешно, следующие условия могут вызвать проблемы.
Что делать, если исходный репозиторий находится за двухфакторной проверкой подлинности?
Служба импорта использует интерфейсы API RESTFUL для проверки и активации импорта и не может работать непосредственно с репозиториями, требующими двухфакторной проверки подлинности.
большинство поставщиков размещения Git, таких как GitHub и Azure DevOps Services , поддерживают личные маркеры, которые можно предоставить службе импорта.
Что делать, если исходный репозиторий не поддерживает multi_ack?
В процессе импорта служба импорта использует multi_ack возможности протокола Git.
Если исходный репозиторий не предоставляет эту возможность, служба импорта может не импортировать данные из данного источника.
Эта ошибка может произойти при создании запроса на импорт или при выполнении импорта.
Можно ли импортировать данные из предыдущих версий Team Foundation Server?
Если исходный репозиторий Git находится в версии TFS более ранней, чем TFS 2017 RTM, импорт завершится ошибкой.
это происходит из-за несоответствия контракта между последней версией Azure DevOps Services/тфс и предварительно 2017 RTM в TFS.
Можно ли использовать учетные данные на основе MSA?
К сожалению, учетные данные на основе MSA (учетная запись Майкрософт, прежнее название — Live ID) работать не будут. Служба импорта использует обычную проверку подлинности для связи с исходным репозиторием. Если используемое имя пользователя или пароль не являются базовой проверкой подлинности, то проверка не будет выполнена, и импорт завершится ошибкой.
Один из способов проверить, является ли используемое имя пользователя или пароль обычной проверкой подлинности, — попробовать использовать Git для клонирования репозитория в следующем формате:
Можно ли импортировать из TFVC?
Вы можете перенести код из существующего репозитория TFVC в новый репозиторий Git в той же учетной записи. Хотя миграция в Git имеет много преимуществ, она является вовлеченным процессом для больших TFVC репозиториев и команд. Централизованные системы управления версиями, такие как TFVC, работают иначе, чем Git. Коммутатор включает гораздо больше, чем изучение новых команд. Это некорректное изменение, требующее тщательного планирования. Дополнительные сведения см. в статье Импорт из TFVC в Git.
Что делать, если исходный репозиторий содержит объекты git LFS?
Импорт Git не импортирует объекты LFS Git.
Объекты LFS можно перемещать, выполнив следующие действия.
Импортируйте репозиторий с помощью функции импорта репозитория в Azure DevOps.
при этом будут скопированы все объекты git из источника в Azure DevOps (также будут импортированы указатели LFS, которые являются объектами Git, но не файлами LFS).
Для перемещения по файлам LFS (в одном и том же окне потребуются клиентские Git.exe и LFS, а также доступ к исходному репозиторию и репозиторию назначения).
- клонирование импортированного репозитория из Azure DevOps в локальную систему. клонирование будет работать, но при извлечении файлов LFS произойдет сбой.
- Добавить исходный репозиторий как удаленный (например, «источник»)
- Выполните (это приведет к переводу всех файлов LFS из источника в локальный репозиторий).
- Предполагается, что целевой репозиторий VSTS является «целевым» удаленным
- Полнит
Можно ли импортировать обновления, если источник изменится позже?
Служба импорта предназначена для первоначального импорта всего репозитория.
Чтобы сделать зеркало более поздним, вам потребуется локальный клон репозитория с удаленными экземплярами, установленными в качестве источника и назначения.
Вы можете синхронизировать изменения с помощью следующих команд.
мы будем рассматривать Azure Repos импортировать как и исходный репозиторий как .
Как сгенерировать ssh-ключ
ssh-ключи сами собой не появляются, но стоит проверить, возможно, они были установлены раньше. Запустим в терминале команды
Если видим файлы id_rsa и id_rsa.pub — отлично, ключи уже есть.
Если этих файлов нет, то нужно сгенерировать ключи утилитой ssh-keygen. В Windows она устанавливается вместе с git, в Linux и MacOS при необходимости установите. В Linux, например, вот так
После этого нужно сгенерировать пару ключей, запустив команду в терминале
Проверяем
Появились файлы id_rsa и id_rsa.pub — значит, ключи успешно сгенерированы.
known_hosts — это файл, в котором ssh прописывает сервера, на которые мы заходим.
При первом подключении к github нужно будет разрешить доступ к github.com (напечатать yes в терминале)
Определение репозитория
Документация, размещенная на сайте docs.microsoft.com, находится в нескольких разных репозиториях на github.com.
-
Если вы точно не знаете, какой репозиторий использовать, откройте статью на сайте docs.microsoft.com в своем веб-браузере. Справа над статьей выберите ссылку Правка (значок карандаша).
-
По этой ссылке вы перейдете к расположению нужного файла Markdown в соответствующем репозитории на сайте github.com. Запишите URL-адрес, чтобы узнать имя репозитория.
Например, для участия в создании документации можно использовать следующие популярные репозитории:
- Документация по Azure https://github.com/MicrosoftDocs/azure-docs
- Документация по SQL Server https://github.com/MicrosoftDocs/sql-docs
- Документация по Visual Studio https://github.com/MicrosoftDocs/visualstudio-docs
- Документация по .NET https://github.com/dotnet/docs
- Документация к пакету Azure SDK для .NET https://github.com/azure/azure-docs-sdk-dotnet
- Документация по Configuration Manager https://github.com/MicrosoftDocs/SCCMdocs
5 ответов
Лучший ответ
Это связано с этой проблемой:
Ssh не загружает вашу среду по умолчанию при отправке команды без перехода в интерактивный режим.
Хорошее решение — с файлом .ssh / environment:
В / etc / ssh / sshd_config добавьте:
Затем просто создайте каталог .ssh / и сбросьте окружение в .ssh / enviroment:
Перезапустить SSH
Теперь, когда вы делаете это со своего локального компьютера:
Ты получишь
И git clone будет работать.
26
Community
13 Апр 2017 в 12:13
Я предполагаю, что это было связано с моими предыдущими недействительными учетными данными github в связке ключей.
- Открыт инструмент доступа к связке ключей с помощью командного пространства
- искал github в инструменте доступа к связке ключей
- удалил все записи, связанные с github (так как он мне больше не нужен)
- это сработало
Если любой из приведенных выше ответов не помогает.
ssinganamalla
24 Мар 2013 в 01:53
Мое решение этой проблемы
-
Проверьте путь к git-upload-pack на удаленном компьютере:
Если он дает путь — скопируйте его (без и завершающей косой черты. Примеры: , , и т. Д.).
-
Проверьте свой PATH на удаленном компьютере во время входа в оболочку:
Нет такого пути (), не так ли? Хороший!
-
Войдите на свой удаленный компьютер:
-
Откройте .bashrc_profile:
-
Найдите эти строки, если они есть:
… и измените их на:
-
Откройте .bashrc:
-
Добавьте эти 4 строки:
-
Выйдите с удаленной машины:
-
Проверьте свой PATH на удаленном компьютере во время входа в оболочку:
Вы видите ? Поздравляю!
Обратите внимание, что теперь вы решили не только проблему , но также и другие исполняемые файлы на своем !
2
Unihedron
15 Авг 2014 в 13:26
В моем случае я решил эту проблему, зайдя на удаленный компьютер, в ящик Ubuntu и выполнив . Не уверен, что это перебор или нет, но проблема решена для меня мгновенно.
6
Raja Simon
29 Апр 2016 в 06:29
Да, это связано с оболочками входа и без входа. Файл загружается только в оболочках без входа в систему. Вы можете использовать для оболочек входа. Просто добавьте такую же модификацию к вашему в файле , и все будет хорошо.
Вы можете найти это интересная статья о разнице между .bashrc и .bash_profile, а также о входе в систему и без входа снаряды.
12
Nathan Kleyn
20 Июн 2012 в 21:31
Непустой проект
Допустим, у нас на локальной машине уже есть проект second-site. Создаем в github репозиторий second-site. Заходим в папку проекта и выполняем команды
Все, можно приступать к работе над проектом. Команды add, commit и push мы разберем в следующих уроках.
Это единственный урок, в котором мы разбирались с тонкостями репозиториев. В дальнейшем будем считать, что репозиторий = проект.
Что могу посоветовать
github или bitbucket? Для личных проектов неважно, оба сервиса разрешают бесплатно создавать приватные репозитории. Для open source или резюме — github
не увлекайтесь клонированием в папку со своим названием
Есть шанс запутаться, самому или коллегам
не путайте публичный и приватный ключи. Отдаем вовне только публичный ключ id_rsa.pub
при смене рабочей машины можно не генерировать ssh-ключи заново, а скопировать их со старой машины. Тогда не придется заново прописывать новые ключи на серверах
Немного подробнее о копировании ssh-ключей
Как скопировать ssh-ключи с одной машины на другую
Хочу немного затронуть эту тему отдельно. Генерировать ключ на новой машине не обязательно. Но нужно выполнить такие действия
- Скопировать id_rsa и id_rsa.pub со старой машины на новую
- Посмотреть права на файлы, возможно, ключи окажутся слишком «открытыми» для записи и потребуется сменить им права доступа — sudo chmod 700 ~/.ssh/*
- Выполнить команду ssh-add
Ссылки, которые могут пригодиться
- github — https://github.com/
- bitbucket — https://bitbucket.org/
- подробнее об ssh-ключах (en) — connecting-to-github-with-ssh
На этом все. В следующем уроке мы сделаем первые изменения в проекте и начнем понимать, в чем заключается прелесть git.
Спасибо за внимание и до встречи!
Следующий урок ⇨
Урок 3. Делаем первые изменения — git diff и git status
⇦ Предыдущий урок
Урок 1. Установка и базовая настройка git
Все уроки курса
- Вводный урок
- 1. Установка и базовая настройка git
- 2. Создание и клонирование репозитория git
- 3. Делаем первые изменения, git status и git diff
- 4. Коммиты и история коммитов, git commit, git log и git show
- 5. Подробнее об истории коммитов. Путешествие по истории
- 6. Работа с сервером, git push и git pull
- 7. Ветки — главная фишка git, git branch и git checkout
- 8. Работа с ветками на сервере, git fetch
- 9. Слияния или мерджи веток, git merge
- 10. Конфликты и их разрешение
- Платная часть курса. Презентация
- * 11. Работа с gitignore и git exclude
- * 12. Буфер обмена git, git stash
- * 13. Копирование коммитов, git cherry-pick
- * 14. Отмена и редактирование последнего коммита
- * 15. Отмена произвольного коммита, git revert
- 16. Склеивание коммитов, git rebase —interactive и git reflog
- * 17. Зачем склеивать коммиты. Плюсы и минусы сквоша
- * 18. Работа с git rebase. Отличия от merge
- * 19. Что такое git push —force и как с ним работать
- * 20. Ищем баги с помощью git, git bisect
- * 21. Как и зачем работать с тегами git
- * 22. Процессы: github flow и git flow
- * 23. Псевдонимы в git
- 24. Мердж-реквесты
- * 25. Форки
* платные уроки
список обновляется…
Настройка удаленного вышестоящего подключения
После клонирования репозитория следует установить удаленное подключение только для чтения, называемое вышестоящим, к основному репозиторию. С помощью URL-адреса вышестоящего подключения вы сможете обеспечить синхронизацию вашего локального репозитория с последними правками, внесенными другими участниками. Команда git remote служит для задания значения конфигурации. С помощью команды принесения можно обновить сведения о ветви из вышестоящего репозитория.
-
Если вы используете Git Credential Manager, выполните следующие команды. Замените заполнители <repo> и <organization> .
-
Просмотрите настроенные значения и проверьте правильность URL-адресов. Убедитесь, что URL-адреса исходного подключения ведут к вашей персональной вилке. Убедитесь, что URL-адреса вышестоящего подключения ведут к основному репозиторию, например MicrosoftDocs или Azure.
Далее приводится пример выходных данных для подключения к удаленному репозиторию. Здесь вымышленная учетная запись Git с именем MyGitAccount настраивается с личным маркером доступа для обращения к репозиторию azure-docs.
-
Если вы допустили ошибку, значение удаленного подключения можно очистить. Чтобы удалить значение вышестоящего подключения, выполните команду .
3 ответа
Лучший ответ
Git 2.8 (март 2016 г.) должен решить эту проблему и принудительно указать пустое имя пользователя и пароль во время аутентификации http:
См. фиксацию 121061f (15 февраля 2016 г.) от брайан м. Карлсон (). (объединено Junio C Hamano — — в commit 65ba75b, 24 февраля 2016 г.)
Документация упомянуть:
Git 2.10.2 (октябрь 2016 г.) улучшит это.
См. фиксацию 5275c30 (4 октября 2016 г.) по Дэвид Тернер (). (объединено Junio C Hamano — — в commit c6400bf, 17 октября 2016 г.)
Git 2.13 (второй квартал 2017 г.) сократит круговой обход аутентификации по HTTP, если сервер поддерживает только один метод аутентификации.
См. фиксацию 40a18fc (25 февраля 2017 г.) и совершить 840398f (22 февраля 2017 г.) от Джефф Кинг ().
Помощник: Йоханнес Шинделин (). (объединено Junio C Hamano — — в commit 92718f5, 10 марта 2017 г.)
5
VonC
18 Мар 2017 в 20:47
Это проблема не Git, а . Вы страдаете от известной ошибки № 10. Реализация намного ниже той из , которая используется в Subversion.
Что касается выбора аутентификации: Git запрашивает с , и он должен выбрать самый надежный из доступных механизмов. Если это не так (с простым ), вы нашли ошибку. Пожалуйста, сообщите на GitHub.
3
Michael-O
25 Дек 2016 в 11:09
ВНИМАНИЕ: раньше это был выбранный ответ, но теперь он устарел, начиная с git v2.8. Прокрутите до ответа VonC, который теперь отмечен зеленым флажком
Все, что находится ниже этой строки, является историческим и устаревшим. Не надо.
Поскольку большая часть заслуги принадлежит @ Michael-O в обсуждении под его ответом на этот вопрос, я считаю, что последний простой решение проблемы должно быть опубликовано в интересах сообщества SO.
Обходной путь к известной ошибке в libcurl, о которой упоминал Майкл, заключается в создании файла (исходный libcurl) или (Git для порта Windows 2.5+, основанного на MSys2). Файл должен содержать пустые имя пользователя и пароль для хоста сервера Kerberized Git. Поскольку соответствие хоста точное, включите как короткие, так и полностью определенные имена DNS и возможные псевдонимы, если таковые имеются, например,
Если все в порядке, строка, которую вы видите в исходном журнале вопросов
Больше не должны печататься, и должна использоваться проверка подлинности согласования с билетом Kerberos пользователя.
kkm
9 Фев 2018 в 03:12
Как использовать команду git Clone
Клонирование в Git может быть сделано на собственном репозитории или в любом другом репозитории.
Как клонировать репозиторий или использовать команду git Clone?
Клонирование репозитория из GitHub — это простой процесс. Но, прежде чем клонировать, пожалуйста, убедитесь, что у вас есть репозиторий на вашем аккаунте GitHub.
Чтобы клонировать репозиторий, перейдите на страницу репозитория, которую вы хотите клонировать. Это можно сделать с помощью боковой колонки на приборной панели.
Нажмите кнопку клонировать или загрузить.
Скопируйте код, который появляется после нажатия кнопки.
После этого откройте Git bash в своей системе
Проверьте каталоги (или репозитории), уже созданные в этом каталоге(используя команду ls). Как видно на рисунке, у меня есть только один репозиторий в каталоге Git Repo ToolsQA.
Нажмите следующую команду, чтобы клонировать репозиторий:git clone URL здесь представляет собой тот же URL, который мы скопировали на третьем шаге.URL — это ссылка на репозиторий GitHub
Вы можете ввести это в адресную строку вашего браузера и проверить, открывается ли страница репозитория или нет.
При нажатии клавиши enter появится следующее сообщение.Это займет несколько секунд, чтобы клонировать хранилище в вашей системе.Примечание: обратите внимание, что клонирование зависит от подключения к интернету, а время будет зависеть от пропускной способности вашего соединения. Если Git не может клонировать из-за слабого соединения, он будет отображать фатальную ошибку, и пользователю будет предложено повторить попытку до тех пор, пока вышеуказанное сообщение не появится.
Подтвердите клонирование, проверив каталоги еще раз с помощью команды ls, которая перечисляет все файлы и папки. Поскольку Централизованное хранилище в нашем случае называется ToolsQA, то же самое было скопировано на мою локальную машину.Проверьте локальный диск, перейдя к нему вручную.