У меня есть проект с git, и я просто хочу клонировать или тянуть определенный каталог, например myproject/javascript, как и подрывная деятельность. 
внести некоторые изменения, зафиксировать и отодвинуть назад. 
Это возможно?
Как вытащить конкретный каталог с помощью git
Ответ 1
- CD в верхней части вашей копии репо
 -  
git fetch -  
git checkout HEAD path/to/your/dir/or/file-  
Где "
path/..." в (3) начинается с каталога чуть ниже корня репозитория, содержащего ваш ".../file" -  
Обратите внимание, что вместо "HEAD" можно использовать хеш-код определенного коммита, и тогда вы получите ревизию (файл) или ревизии (dir), специфичные для этого коммита.
 
 -  
 
Ответ 2
В пустой каталог:
git init
git remote add [REMOTE_NAME] [GIT_URL]
git fetch REMOTE_NAME
git checkout REMOTE_NAME/BRANCH -- path/to/directory
		Ответ 3
После долгих поисков ответа, не найдя, не сдавшись, не попробовав снова и так далее, я, наконец, нашел решение для этого в другом потоке SO:
Как git -pull все, кроме одной папки
Чтобы скопировать то, что там:
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!
Ответ 4
Это невозможно. Вам нужно вытащить весь репозиторий или ничего.
Ответ 5
Возможно, эта команда может быть полезна:
git archive --remote=MyRemoteGitRepo --format=tar BranchName_or_commit  path/to/your/dir/or/file > files.tar
"Et voilà"
Ответ 6
Я вижу. Я попробую создать подмодули и посмотреть, работает ли для меня. Я сообщу результаты. РЕДАКТИРОВАТЬ: для меня разработаны редкие проверки и подмодули. Ссылки, которые я использовал для чтения (данные VonC и Michel Jansen):
Как git -pull все, кроме одной папки
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
Ответ 7
  git clone --filter из Git 2.19
Эта опция фактически пропускает выборку ненужных объектов с сервера.
Я написал подробный ответ, объясняющий текущий статус поддержки: Как мне клонировать только подкаталог репозитория Git?
 Весьма вероятно, что все, что будет реализовано для git clone в этой области, также будет иметь аналоги git pull.
Ответ 8
Шингара прав. Объяснение этого поведения приведено в этот поток списка рассылки. Если вы действительно хотите это сделать, вы можете сделать javascript dir подмодулем.
Ответ 9
Иногда вам просто нужно взглянуть на предыдущие копии файлов, не опасаясь прохода через diff.
В таком случае так же легко сделать клон репозитория и проверить конкретную фиксацию, которую вы заинтересовали, и посмотреть на подкаталог в этом клонированном репозитории. Поскольку все локально, вы можете просто удалить этот клон, когда закончите.
Ответ 10
Если вы хотите получать последние изменения в каталоге, не вводя его, вы можете сделать следующее:
$ git -C <Path to directory> pull