2017-01-23 2 views
2

Хотите сделать разреженный выезд из git repo (github.com). Update (этот скрипт работает сейчас - трюк, чтобы добавить «/» перед pom.xml Сделан это Баш скрипт:git редкая проверка и мелкий вопрос клона с github

#!/bin/sh 

export baseUrl=https://github.com/ 
export repoAc=spring-projects 
export repo=spring-data-examples 

#export baseUrl=https://github.com/ 
#export repoAc=tgkprog 
#export repo=testGit 

echo "Cd change to correct dir like ~/u/w/s/github/" 
cd ~/u/w/s3/github/ 
if [ $? -eq 0 ]; then 
    echo OK 
else 
    echo"FAIL: bad dir to cd to " 
    exit 0 
fi 
echo "Have you edited this script? Else crl -c to stop now" 
echo "you are at dir:" 
pwd 
echo "If exists contents of $repoAc/$repo :" 
ls $repoAc/$repo 
echo "1/2 will delete folder $repoAc/$repo ctrl-c to cancel. Press enter to continue" 
read -rsp $'Press Ctrl-c to cancel or any other key to continue \n' -n1 key 
echo "2/2 will delete folder $repo ctrl-c to cancel. Press enter to continue " 
read -rsp $'Press Ctrl-c to cancel or any other key to continue \n' -n1 key 
mkdir $repoAc 
cd $repoAc 
rm -fR ./$repo 
git init $repo 
cd $repo 
if [ $? -eq 0 ]; then 
    echo OK 
else 
    echo"FAIL: bad dir to cd to " 
    exit 0 
fi 
# TODO if error stop here. 
git remote add origin $baseUrl$repoAc/$repo 
git config core.sparsecheckout true 
echo "elasticsearch/*" >> .git/info/sparse-checkout 
echo "/README.md" >> .git/info/sparse-checkout 
#echo "h/" >> .git/info/sparse-checkout 
#echo "s/" >> .git/info/sparse-checkout 
echo "web/*" >> .git/info/sparse-checkout 
echo "jpa/*" >> .git/info/sparse-checkout 
echo "map/*" >> .git/info/sparse-checkout 
echo "multi-store/*" >> .git/info/sparse-checkout 
echo "/pom.xml" >> .git/info/sparse-checkout 
#echo "!*/pom.xml" >> .git/info/sparse-checkout 
#paths we do not want 
echo "!no1/" >> .git/info/sparse-checkout 
echo "!neo4j/" >> .git/info/sparse-checkout 
echo "!cassandra/" >> .git/info/sparse-checkout 
echo "!solr/" >> .git/info/sparse-checkout 
git pull --depth=1 origin master 
# wget https://raw.githubusercontent.com/spring-projects/spring-data-examples/master/pom.xml 
echo "Done $repo" 
ls -al 

Если я удалить строки из эха «pom.xml» ... и до эха " Solr/*»>> .git/Информация/исключить

я подкаталоги:. Bom elasticsearch JPA карта веб

Но не родительский POM

Если добавить эхо "pom.xml" >> .git/info/spa rse-checkout

Затем он получает все (все вспомогательные каталоги). Не знаете почему?

Update 2:

Ранее пробовал:

echo "cassandra/*" >> .git/info/exclude 

Значение добавления пути Я хочу, чтобы мерзавец не извлекает в файл .git/Информация/исключить, но этот файл для добавления и совершать только не для оформления заказа.

Для проверки нужно добавить в файл .git/информации/разреженную проверку следующим образом:

! Кассандра/

Код строка:

echo "!cassandra/" >>.git/info/sparse-checkout 

делает это ,

+1

заполнения '.git/info/exclude' не имеет смысла в вашем случае; он учитывается при фиксации/добавлении, но не при выписке – max630

+1

'@echo off' предназначен для пакетных файлов - он не нужен или не полезен для сценариев оболочки. –

+0

@ max630 да ваше право. необходимо использовать удар (!) перед тем, как идти в .git/info/sparse-checkout, чтобы отметить его как не включенный. – tgkprog

ответ

1

Используйте «/pom.xml», в противном случае файлы, такие как solr/pom.xml, будут извлечены, создав необходимые каталоги.

Также для моделей пути, которые не должны быть проигнорированы во время проверки, положить их в .git/Информация/разреженной-кассе, но предшествуют с мешком, пример (!): Кассандры/

+0

Да, ваше право. Я отредактировал ваш ответ, чтобы проиллюстрировать правильный путь для создания отрицательных путей. – tgkprog

+1

IIRC по умолчанию, если ничего не написано в 'разреженный-checkout', он не проверен. Но быть явным всегда лучше – max630

Смежные вопросы