Я использую Git 2.8 на своем Mac, но настроил привязку GIt postrecieve на моей производственной машине (Ubuntu Linux), чтобы я мог вносить изменения из своего репозитория и развертывать их на своей удаленной машине. Для этого я запустил эти команды на удаленной машинеЕсть ли способ, которым я могу настроить свой репозиторий Git на моем производстве, чтобы не сохранять историю?
mkdir ~/appname_production
cd ~/appname_production
git init --bare
Затем я создал Крючки/пост-получить файл со следующими данными ...
#!/bin/bash
GIT_DIR=/home/deploy/appname_production
WORK_TREE=/home/deploy/appname
export appname_DATABASE_USER='rails'
export appname_DATABASE_PASSWORD=‘password’
export RAILS_ENV=production
. ~/.bash_profile
while read oldrev newrev ref
do
if [[ $ref =~ .*/master$ ]];
then
echo "Master ref received. Deploying master branch to production..."
mkdir -p $WORK_TREE
git --work-tree=$WORK_TREE --git-dir=$GIT_DIR checkout -f
mkdir -p $WORK_TREE/shared/pids $WORK_TREE/shared/sockets $WORK_TREE/shared/log
# start deploy tasks
cd $WORK_TREE
bundle install
rake db:create
rake db:migrate
rake db:seed
rake tmp:cache:clear
rake assets:clobber
rake assets:precompile
sudo restart puma-manager
sudo service nginx restart
sudo service unicorn restart
# end deploy tasks
echo "Git hooks deploy complete"
else
echo "Ref $ref successfully received. Doing nothing: only the master branch may be deployed on this server."
fi
done
На моей локальной машине, из моего каталога проекта, Я побежал
git remote add production [email protected]_server_public_IP:appname_production
и поэтому, когда я бегу
git push production master
локально, мой проект развертывается на удаленном компьютере и развертывается. Мой вопрос: мне нужна только последняя версия (голова?) На моем удаленном компьютере, когда я нажимаю, и мне не нужно сохранять историю git на удаленной машине (главным образом потому, что я хочу сохранить дисковое пространство). Есть ли способ настроить мой репозиторий git на моем удаленном компьютере, чтобы он не сохранял все предыдущие коммиты/историю? Обратите внимание, что удаленная машина не является репозиторием git (то есть в gitlabs).
Если вы не хотите историю на пульте дистанционного управления, зачем вообще использовать git? Просто доставьте tarball желаемого контента. Вы можете сгенерировать его с помощью 'git archive' (или просто создать его с помощью tar). –