У меня есть проект с git, и я просто хочу клонировать или тянуть конкретный каталог, например myproject/javascript, как и подрывная деятельность.
внести некоторые изменения, зафиксировать и отодвинуть назад.
Возможно?Как вытащить конкретный каталог с git
ответ
- CD в верхней части копии репо
git fetch
git checkout HEAD path/to/your/dir/or/file
- Где "
path/...
" в (3) начинается в каталоге чуть ниже корень репо, содержащий ваши ".../file
"
- Где "
Это ответ ... спасибо! – Paul
Только что понял, что я неправильно понял вопрос. Мой ответ вместо этого обращается к тому, как проверять один файл, который затем может быть изменен и зафиксирован. – vergueishon
Вы обратились к названию вопроса, который достаточно хорош. Это только спасло меня, насколько мне известно, это правильный ответ - тем более, что это был лучший удар по Google для этой проблемы. – Morgon
Невозможно. Вам нужно вытащить весь репозиторий или ничего.
Несмотря на то, что вам нужно * вытащить * все, будет ли интересным заниматься в дереве редкое рабочее дерево? См. Http://stackoverflow.com/questions/2416815/how-to-git-pull-all-but-one-folder/2416991#2416991 – VonC
Просто чтобы добавить это, причина, по которой вы не можете вытащить только каталог, git использует семантическое отслеживание данных, а не семантическое отслеживание файлов, поэтому вы можете легко перемещать код (или другие данные) в файлы и из них, не указывая системе отслеживания источников (до тех пор, пока вы, конечно, не обновляетесь). Из-за этого код может перемещаться в и из каталогов легко, так что захват только одного каталога не имеет особого смысла. Надеюсь это поможет. – OmnipotentEntity
Ответ vergueishon ниже работал для меня. – Paul
Shingara является правильным. Объяснение этого поведения приведено в this mailing list thread. Если вы действительно хотите это сделать, вы можете сделать javascript dir подмодулем.
Вы не ответили на вопрос в своем комментарии, вы предоставили ссылку. Если ссылка когда-либо гаснет, ваша ссылка бесполезна, как и ваш ответ. Кроме того, что на ссылке не очень лаконично и легко читать. Ваш ответ был бы полезен, если бы вы обобщили или упростили то, что было в ссылке. – leetNightshade
Иногда вы просто хотите взглянуть на предыдущие копии файлов без осколков пробега через diff.
В таком случае так же легко сделать клон репозитория и проверить конкретную фиксацию, которая вас интересует, и посмотреть на подкаталог в этом клонированном репозитории. Поскольку все локально, вы можете просто удалить этот клон, когда закончите.
Я вижу. Я попробую создать подмодули и посмотреть, работает ли для меня. Я сообщу результаты. EDIT: Редкие проверки и подмодули разработаны для меня.Ссылки, которые я использовал, чтобы прочитать о (дается VonC и Мишель Jansen) являются:
How to git-pull all but one folder
http://www.kernel.org/pub/software/scm/git/docs/git-read-tree.html#_sparse_checkout
http://vmiklos.hu/blog/sparse-checkout-example-in-git-1-7
http://www.kernel.org/pub/software/scm/git/docs/git-read-tree.html#_sparse_checkout
Особенность подмодуля git не особенно хорошо реализована. Они могут быть очень неудобными и запутанными для работы. Лично я бы хорошо избегал подмодулей git, пока все изломы не исчезли. – user2268788
Возможно, эта команда может быть полезна:
git archive --remote=MyRemoteGitRepo --format=tar BranchName_or_commit path/to/your/dir/or/file > files.tar
«вуаля»
Это загружает конкретный каталог файла для целей архивирования это не вытаскивает копию, которую вы можете изменить и отодвинуть назад. – leetNightshade
В пустом каталоге:
git init
git remote add [REMOTE_NAME] [GIT_URL]
git fetch REMOTE_NAME
git checkout REMOTE_NAME/BRANCH -- path/to/directory
Это сработало для меня, когда принятого ответа не было. –
Это правильный ответ на ОП. –
Это работает, если вы хотите использовать удаленную версию файла для замены локального файла, я думаю, – John
После долгих поисков ответа, не находя, отказавшись, пытаясь снова и так далее, я, наконец, нашел решение это в другой теме: SO
How to git-pull all but one folder
Чтобы скопировать и вставить то, что там:
git init
git remote add -f origin <url>
git config core.sparsecheckout true
echo <dir1>/ >> .git/info/sparse-checkout
echo <dir2>/ >> .git/info/sparse-checkout
echo <dir3>/ >> .git/info/sparse-checkout
git pull origin master
Чтобы сделать то, что хочет OP (работайте только с одним режком), просто добавьте этот один каталог в .git/info/sparse-checkout
, выполнив описанные выше шаги.
Большое спасибо @cforbish!
Я размещаю его здесь в основном потому, что всякий раз, когда я пытаюсь Google, как это сделать, это лучший результат, и этот поток даже близко к отображению. :(Я чувствую плохое копирование, но я считаю, что это лучшие методы? – msb
- 1. Git - Как вытащить исключить каталог
- 2. Как вытащить конкретный файл с помощью GIT?
- 3. Как вытащить репозитории Git в новый каталог?
- 4. Git, вытащить часть другого репозитория
- 5. Как установить программное обеспечение Git для Windows в конкретный каталог?
- 6. Mercurial: как вытащить и обновить конкретный тег
- 7. gitignore, как исключить конкретный каталог
- 8. Как загрузить в конкретный каталог с Python?
- 9. Как переименовать каталог .git?
- 10. .htaccess перенаправить конкретный каталог
- 11. Как вытащить каталог, который находится в .gitignore?
- 12. Git: Как защитить каталог
- 13. Git игнорирует конкретный каталог, а не игнорирует или исключает список
- 14. XDocument.Save в конкретный каталог?
- 15. Git не обновит каталог
- 16. Git вытащить только определенные файлы
- 17. Единственная команда git вытащить ветку?
- 18. вытащить данные на конкретный лист в документе
- 19. каталог Git против SVN каталог
- 20. Как вытащить фиксацию из ветки в git
- 21. Как вытащить удаление ветки в git?
- 22. Git: вытащить из другой ветки
- 23. Вытащить только одну директорию из git repo
- 24. Вытащить конкретную ветку от git
- 25. Git вытащить из чужой вилки
- 26. Как вытащить и выгрузить удаленный репозиторий Git
- 27. вытащить все ветки репозитория git
- 28. как вытащить фиксацию из git-истории?
- 29. Git вытащить из частичного репозитория?
- 30. Какую Git-фиксацию легко вытащить
редкое оформление может вас заинтересовать (даже если вам все равно нужно достать все): см. Http://stackoverflow.com/questions/2416815/how-to-git-pull-all-but-one-folder/2416991# 2416991 – VonC