Подтвердить что ты не робот

Клонировать части проекта github

Возможный дубликат:
Есть ли способ клонировать только подкаталог git репозиториев?

Я пытаюсь клонировать части проекта github, но я могу получить только корневую папку. Это первый раз, когда я пытаюсь использовать github, и я только что установил tortoisegit, я использовал svn и cvs, где вы могли просто взять папку, которую вы хотели проверить, но похоже, что git получил только .git файл в корневой папке поэтому я не уверен, что делать.

4b9b3361

Ответ 1

Существует слияние поддерева.

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

  • Форк (клон) репозитория
  • Удалите ненужные части и переместите подпапку туда, где вам нужно
  • Фиксировать

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

Ответ 2

В сообществе Git то, что вы хотите, называется "частичной проверкой". В настоящее время он не поддерживается в Git, но он появляется каждый раз в списке рассылки. Git имеет бит и куски внутренних компонентов, необходимых для поддержки частичной проверки, но нет простого способа использовать их в качестве пользователя. Я предполагаю, что Git в конечном итоге сможет выполнять частичную проверку, но может произойти некоторое время, прежде чем это произойдет.

В дополнение к jhs отвечает (поддерево слияния, rm, mv, commit, merge), есть также стороннюю команду поддерева, которая могла бы облегчить работу с частичной проверкой. Хотя это не главная цель, поэтому не очевидно, как вы можете использовать его для работы с частичной проверкой. Если вы уже знаете Git достаточно хорошо, вы можете это обработать, но если вы новичок в Git, эта команда поддерева будет довольно непрозрачной.

Наконец, если все, что вы хотите сделать, это загрузить последние файлы, вы можете использовать git archive для загрузки tar файла определенного ветки или тега (или любой фиксации). Это может не работать с GitHub (это зависит от конфигурации сервера), я не проверял. Даже если это не работает напрямую, вы можете клонировать свое собственное "голое зеркальное репо", а затем извлекать из него (поддерево) архивы.

Ответ 3

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

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

Git (ну, вообще, DVCS) не предназначен для конечных пользователей так же, как и для разработчиков. Я нахожу git (особенно в сочетании с github) невероятно полезной для кодирования. Если есть проект по github, в который я хочу внести свой вклад, я просто разблокирую его, вытаскиваю его, взламываю, отжимаю и отправляю запрос на pull, easypeasy, вместо того, чтобы делать чек, взламывать, создавать diff, пытаясь найти где отправлять электронную почту, и надеясь, что diff не сломается, прежде чем разработчики начнут объединять его.

Git в целом, конечно, сложнее, чем svn, но это потому, что кодирование является сложным процессом. Централизованный рабочий процесс VCS невероятно болезнен для меня, потому что меня воспитывали на DVCS, и мне не разрешают делать всевозможные вещи, которые я привык делать. Таким образом, да, будет сложнее использовать git vs. svn, если вы будете делать то же самое, но преимущество в том, что есть так много других вещей, которые вы можете сделать. git был разработан для разработки ядра Linux, и он показывает.