Можем ли мы повторно клонировать репозиторий git из существующего локального репозитория

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

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

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

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

Чтобы клонировать репозиторий, перейдите на страницу репозитория, которую вы хотите клонировать. Это можно сделать с помощью боковой колонки на приборной панели.
Нажмите кнопку клонировать или загрузить.
Скопируйте код, который появляется после нажатия кнопки.
После этого откройте Git bash в своей системе
Проверьте каталоги (или репозитории), уже созданные в этом каталоге(используя команду ls). Как видно на рисунке, у меня есть только один репозиторий в каталоге Git Repo ToolsQA.
Нажмите следующую команду, чтобы клонировать репозиторий:git clone URL здесь представляет собой тот же URL, который мы скопировали на третьем шаге.URL — это ссылка на репозиторий GitHub

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

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

Выполнение команды

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

awk -F’\/|(\.git)’ ‘{system(“cd ~/FULL/PATH/” $2 “ && git remote set-url origin — add “ $0 “ && git push”)}’ gl-repos.txt

Cloning an empty repository

An empty repository contains no files. It’s often made if you don’t initialize the repository with a README when creating it.

  1. On GitHub.com, navigate to the main page of the repository.

  2. To clone your repository using the command line using HTTPS, under «Quick setup», click . To clone the repository using an SSH key, including a certificate issued by your organization’s SSH certificate authority, click SSH, then click .

    Alternatively, to clone your repository in Desktop, click Set up in Desktop and follow the prompts to complete the clone.

  3. Open .

  4. Change the current working directory to the location where you want the cloned directory.

  5. Type , and then paste the URL you copied earlier.

  6. Press Enter to create your local clone.

About cloning a repository

You can clone a repository from GitHub.com to your local computer to make it easier to fix merge conflicts, add or remove files, and push larger commits. When you clone a repository, you copy the repository from GitHub.com to your local machine.

Cloning a repository pulls down a full copy of all the repository data that GitHub.com has at that point in time, including all versions of every file and folder for the project. You can push your changes to the remote repository on GitHub.com, or pull other people’s changes from GitHub.com. For more information, see «Using Git».

You can clone your existing repository or clone another person’s existing repository to contribute to a project.

Клонирование существующего репозитория

Второй вариант создания директории для контроля версий – копирование существующего проекта с другого сервера. Это актуально, когда осуществляется доработка готового проекта или вы желаете внедрить его компоненты в свой. В этом поможет команда git clone, о которой и пойдет речь далее. 

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

Для клонирования существующего репозитория понадобится ввести git clone <url>. Пример такой команды вы видите ниже:

git clone https://github.com/rep/rep

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

При использовании вышеуказанной команды репозиторий клонируется с текущим названием. Если же оно должно отличаться, используйте следующую вариацию команды:

git clone https://github.com/rep/rep myrep

Завершим этот раздел статьи описанием содержимого, которое появляется в консоли при выполнении команды. Данный вывод соответствует успешному клонированию:

Cloning into 'Git'...

remote: Counting objects: 46, done.

remote: Compressing objects: 100% (25/25), done.

remote: Total 46 (delta 7), reused 43 (delta 4), pack-reused 0

Unpacking objects: 100% (46/46), done.

Checking connectivity... done.

Все уроки курса

  • Вводный урок
  • 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. Форки

* платные уроки

список обновляется…

Добавление файлов в 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

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

Перейдите на сайт desktop.github.com и скачайте GitHub Desktop — это приложение, которое позволит синхронизировать удалённый репозиторий на GitHub и файлы на вашем компьютере без командной строки терминала:

  • Скачиваем приложение под свою операционную систему.
  • Открываем приложение и проходим авторизацию — нужно указать электронную почту и данные вашего GitHub-аккаунта.
  • Приложение синхронизируется с удалённым репозиторием и предложит выполнить одно из следующих действий: создать новый репозиторий, добавить локальную папку с компьютера в GitHub Desktop или клонировать существующий репозиторий в папку компьютера.

Мы создали тестовый удалённый репозиторий, поэтому выберем третий вариант — клонировать существующий репозиторий в папку компьютера.

После установки GitHub Desktop запросит синхронизацию с GitHub-аккаунтом. Если аккаунта нет, приложение предложит его создать
Рабочее пространство в GitHub Desktop — мы можем клонировать репозиторий, создать новый или перенести нужные файлы с компьютера
Выбираем репозиторий, сохраняем его на рабочем столе и жмём кнопку Clone

После клонирования репозитория в рабочем пространстве появятся три вкладки: Current Repository, Current Branch и Fetch origin.

  • Current Repository — раздел позволяет переключаться между несколькими репозиториями, отслеживать невнесённые изменения (вкладка Changes) и смотреть историю коммитов (вкладка History).
  • Current Branch — раздел позволяет переключаться между несколькими ветками проекта.
  • Fetch origin — раздел обновляет внесённые изменения и синхронизирует файлы локального и удалённого репозитория.

Обратите внимание на раздел Current Repository и вкладку Changes. В левом нижнем углу есть окно для добавления коммитов и комментариев — это означает, что вы можете записывать каждый шаг, не посещая сайт GitHub

Рабочее пространство для работы с клонированным репозиторием
История изменений нашего репозитория

Cloning a repository

  1. On GitHub.com, navigate to the main page of the repository.

  2. Above the list of files, click Code.

  3. To clone the repository using HTTPS, under «Clone with HTTPS», click . To clone the repository using an SSH key, including a certificate issued by your organization’s SSH certificate authority, click Use SSH, then click . To clone a repository using GitHub CLI, click Use GitHub CLI, then click .

  4. Open .

  5. Change the current working directory to the location where you want the cloned directory.

  6. Type , and then paste the URL you copied earlier.

  7. Press Enter to create your local clone.

To learn more about GitHub CLI, see «About GitHub CLI.»

To clone a repository locally, use the subcommand. Replace the parameter with the repository name. For example, , , or . If the portion of the repository argument is omitted, it defaults to the name of the authenticating user.

You can also use the GitHub URL to clone a repository.

  1. On GitHub.com, navigate to the main page of the repository.
  2. Above the list of files, click Code.

  3. Click Open with GitHub Desktop to clone and open the repository with GitHub Desktop.

  4. Follow the prompts in GitHub Desktop to complete the clone.

For more information, see «Cloning a repository from GitHub to GitHub Desktop.»

7 ответов

Лучший ответ

(1) Внутри локального репозитория git создайте новый файл sh

(2) Вставьте приведенный ниже контент в файл :

(3) Получить все ветки:

(4) Проверьте результат в локальном репозитории:

Например, я использую репозиторий: https://github.com/donhuvy/spring-boot

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

63

Raktim Biswas
8 Май 2020 в 13:45

Это не слишком сложно, очень простые и понятные шаги заключаются в следующем:

После клонирования репо запустите

Это покажет вам все удаленные ветки.

Если вы хотите работать с удаленной веткой, вам необходимо создать локальную ветку отслеживания:

Убедитесь, что вы находитесь в нужной ветке, с помощью следующей команды;

Результат будет таким;

Обратите внимание на знак *, обозначающий текущую ветвь. 46

Amit Gupta
29 Окт 2016 в 05:52

46

Amit Gupta
29 Окт 2016 в 05:52

Затем после клонирования репо со всеми его ветвями выполните следующие действия.

17

Amen Ra
11 Фев 2017 в 05:00

Ветви по сути являются указателями на коммиты. Когда вы выполняете (или ), вы получаете все коммиты из удаленного репозитория, а также все его ветки.

Однако по умолчанию не показывает удаленные ветви. Вместо этого он показывает ваши локальные ветки, которые могут иметь или не иметь никакого отношения к ветвям, существующим на удаленном компьютере. Если вы запустите , git сообщит обо всех известных ему ветвях, как локальных, так и удаленных.

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

13

Xiong Chiamiov
28 Окт 2016 в 20:10

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

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

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

Чтобы сделать это «обычным» репозиторием git, нам нужно сделать это клонирование папки в новую папку, которая будет нашей обычной папкой репо:

Обратите внимание, что не существует единой собственной команды git для загрузки всех удаленных веток, поэтому самый простой способ — убедиться, что все коммиты отправлены в источник, а затем повторно загрузить весь репозиторий заново с помощью этой опции —mirror. 3

togume
21 Авг 2018 в 15:20

3

togume
21 Авг 2018 в 15:20

Я считаю, что это простое решение для клонирования репозитория git и всех удаленных веток:

3

Stryker
11 Июн 2019 в 15:48

Что делает ваше репо полностью идентичным.

См. https://help.github.com/en/articles/duplicating- а-репозиторий

2

feng zhang
1 Апр 2020 в 15:18

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

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

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

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

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

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

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: