Gostaria de saber se existe uma maneira fácil de colocar um repositório GIT em produção (em um servidor FTP)? obrigado
130
Algumas ferramentas adicionadas recentemente ao wiki do Git :
O git-ftp de René Moser é um shell script simples para fazer o FTP da maneira Git. Use o git-ftp.sh para carregar apenas os arquivos rastreados pelo Git em um servidor FTP, que foram alterados desde o último upload. Isso economiza tempo e largura de banda. Mesmo se você jogar com diferentes ramificações, o git-ftp.sh sabe quais arquivos são diferentes. Nenhum cliente FTP comum pode fazer isso.
git-ftp de Edward Z. Yang é um script simples escrito em python para fazer upload de arquivos em um repositório Git via FTP, apenas transferindo novos arquivos e removendo arquivos antigos.
Se você preferir a GUI, use o SourceTree, poderá configurar facilmente uma Ação Personalizada que use o git-ftp mencionado acima. Uma breve descrição da instalação (para Mac) no repositório Push a Git para um FTP
fonte
Eu achei o PHPloy uma ótima ferramenta para enviar suas confirmações do Git para servidores remotos por FTP. Ele funciona a partir da linha de comando e é escrito em PHP (e até detecta alterações nos submódulos).
https://github.com/banago/PHPloy
Feito!
(Isenção de responsabilidade: depois de usá-lo por um tempo, agora eu contribuí com algumas correções e melhorias de código, tornando-o compatível com o Windows.)
fonte
Se você estiver em um Mac e tiver o Transmit, recomendo o seguinte script git-tranmit ( https://gist.github.com/379750 ). Ele usa o DockSend para enviar apenas os últimos arquivos atualizados. Se você não estiver familiarizado com o DockSend, consulte http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ .
Configuração:
fonte
Não é para isso que serve o git, a rigor. No entanto, se sua fonte é algo que não precisa ser compilado ou processado, digamos, um site que consiste inteiramente de arquivos html e javascript e similares, você pode ter um clone do repositório em seu servidor
git pull
da Web e usá -lo no servidor para mantê-lo atualizado -Até a presente data. Note, eu configuraria seu servidor web para ocultar o diretório git e tal. E isso é apenas o começo das preocupações de segurança.Se você tiver algum tipo de compilação ou processamento, comece a analisar Ant , Maven , BuildR , SBT , etc.
fonte
Você pode usar o Deployhq.com, que funciona como um encanto, a única coisa que você precisa fazer é configurar seu repositório e sua conta FTP.
Atualmente, eles são os seguintes sistemas de controle de versão:
Git, Subversão, Mercurial.
Com repositório hospedado
fonte
Este é um script em PHP para carregar quase automaticamente o git-diff em um servidor FTP:
http://code.google.com/p/upload-git-diff-with-ftp/
fonte
https://www.deployhq.com/
Gratuito para um projeto e funciona muito bem.
fonte
Há um script Ruby aqui - Ruby git-deploy via FTP ou SSH que carrega apenas os arquivos alterados no repositório git via FTP ou SSH.
Como mencionado em outra resposta, aqui está o script git-ftp.py do Python, que faz uma coisa semelhante.
E aqui está a versão do shell script do git-ftp .
Há também um projeto gem Ruby chamado git-deploy, que permite configurar uma implantação personalizada por meio de um git remote usando o
git push
comando, da mesma maneira que os serviços Heroku e Azure. Para este, você pode precisar escrever métodos personalizados para implantar via FTP e acho que assume que você tenha acesso SSH ao servidor de produção.fonte
Se você estiver colocando código em produção, recomendo usar um "instalador", como um pacote RPM, para instalar seu código. Dessa forma, a versão será estampada e você poderá aproveitar o pacote do instalador para oferecer suporte a atualizações no código de produção. O Git não é realmente projetado para oferecer suporte a instalações de produção, ele visa rastrear alterações no próprio código.
De qualquer forma, com um .RPM (ou EXE ou o que for) criado, você pode enviá-lo por FTP para o sistema de produção e instalá-lo como qualquer outro pacote.
fonte
Adicione-o como um controle remoto e você poderá enviá-lo por push, mas simplesmente empurrar o código não é suficiente, ele precisa ser mesclado com a árvore de trabalho. A maneira mais fácil é seguir o caminho inverso, ter uma árvore de trabalho no servidor e buscar e mesclar isso.
fonte
Você sempre pode tentar montar o ftp em um diretório local usando o http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem .
Então você pode usá-lo da mesma maneira que isso .
fonte
Eu estava lutando muito para descobrir isso. Eu descobri uma maneira fácil de fazer isso de várias fontes ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , git-ftpPUSH ). Você pode ler para referência, mas não há necessidade, porque mencionei o processo passo a passo abaixo.
Primeira coisa: instale git e curl usando brew no MAC OS
Execute os seguintes comandos:
Atualizando usando git
Configuração
Carregar todos os arquivos
Ou se os arquivos já estiverem lá
Trabalhar e implantar
Se houver um erro: pathspec 'index.txt' não correspondeu a nenhum arquivo conhecido pelo git . Isso significa que o arquivo ainda não foi preparado, adicione o arquivo e tente confirmar.
Espero que isto ajude.
fonte
Você pode tentar o FTPloy ...
https://ftploy.com
Você tem um projeto gratuito para experimentar. Atualmente, estou usando para um pequeno site php e funciona muito bem. Alguns bugs no site, mas é um projeto ativo, pelo menos eles estão trabalhando nele.
fonte
Confira https://gitftp-deploy.com/ se você estiver no MacOS e gostar de GUIs.
É um aplicativo pequeno e agradável que usa o Git para rastrear alterações e fazer upload apenas dos arquivos alterados com FTP.
Especialmente útil se você não gosta de pagar taxas mensais por dezenas de projetos menores com equipes pequenas.
fonte