например, я хочу получить эту папку https://github.com/python/cpython/tree/2.7/Tools/freeze
Команда, которую я запускал, была:
mkdir python
cd python
git init
git remote add origin https://github.com/python/cpython.git
git config core.sparsecheckout true
echo "Tools/freeze/*" >> .git/info/sparse-checkout
# find remote branches
git remote show origin
# this works and pulls only that folder
git pull --depth=1 origin master
# but this doesn't, why?
git pull --depth=1 origin 2.7
# but how do I switch to remote 2.7 branch?
git checkout --track -b 2.7 origin/2.7
fatal: Cannot update paths and switch to branch '2.7' at the same time.
Did you intend to checkout 'origin/2.7' which can not be resolved as commit?
Я читал где-то, что мне нужно запустить git fetch
перед проверкой, но это своего рода поражение цели разреженной проверки, мой интернет медленный, и репо огромно. Как я могу получить этот подкаталог с ветвью 2.7? Спасибо!
Это на windows8 и git bash
изменить:
если бы я побежал
git pull --depth=1 origin 2.7
он вытащит удаленную ветвь 2.7, но он также добавит все остальные файлы в мой рабочий каталог, а если я запустил git pull --depth=1 origin master
, он только приносит каталог Tools/freeze
в главную ветку? почему это происходит?
другой пример:
mkdir qt
cd qt
git init
git remote add origin https://github.com/qtproject/qt.git
git config core.sparsecheckout true
echo util/qlalr/examples/lambda/* >> .git/info/sparse-checkout
git pull --depth=1 origin 4.8
Эта папка util/qlalr/examples/lambda
очень мала, но когда она запускает последнюю команду, она все еще медленная, этого можно избежать?
edit2: Я понял, что это невозможно с текущим git. но теперь мой единственный левый вопрос: почему git pull --depth=1 origin 2.7
не учитывает редкую конфигурацию проверки?