Chciałbym wiedzieć, czy istnieje łatwy sposób na wypchnięcie repozytorium GIT do produkcji (na serwerze FTP)? Dzięki
Odpowiedzi:
Niektóre narzędzia niedawno dodane do wiki Git :
git-ftp autorstwa René Mosera to prosty skrypt powłoki do obsługi FTP w sposób Git. Użyj git-ftp.sh, aby przesłać tylko pliki śledzone przez Git na serwer FTP, które uległy zmianie od ostatniego przesyłania. Oszczędza to czas i przepustowość. Nawet jeśli grasz z różnymi gałęziami, git-ftp.sh wie, które pliki są różne. Żaden zwykły klient FTP nie może tego zrobić.
git-ftp autorstwa Edwarda Z. Yang to prosty skrypt napisany w Pythonie do przesyłania plików do repozytorium Git przez FTP, tylko do przesyłania nowych plików i usuwania starych plików.
Jeśli wolisz GUI, użyj SourceTree, możesz łatwo skonfigurować akcję niestandardową, która używa wspomnianego wyżej git-ftp. Krótki opis konfiguracji (dla komputerów Mac) w sekcji Przekaż repozytorium Git na serwer FTP
Znalazłem PHPloy jako świetne narzędzie do wysyłania zatwierdzeń Git do zdalnych serwerów przez FTP. Działa z wiersza poleceń i jest napisany w PHP (a nawet wykrywa zmiany w modułach podrzędnych).
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
Gotowe!
(Zastrzeżenie: po używaniu go przez jakiś czas dodałem kilka poprawek i ulepszeń kodu, dzięki czemu jest kompatybilny z Windows.)
Jeśli korzystasz z komputera Mac i masz Transmit, polecam następujący skrypt git-tranmit ( https://gist.github.com/379750 ). Używa DockSend do wysyłania tylko ostatnio zaktualizowanych plików. Jeśli nie znasz DockSend, sprawdź http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ .
Ustawiać:
Ściśle mówiąc, nie do tego służy git. Jeśli jednak Twoje źródło jest czymś, co nie wymaga kompilacji ani przetwarzania, na przykład strona internetowa składająca się wyłącznie z plików html i javascript itp., Możesz mieć klon repozytorium na swoim serwerze internetowym i używać go git pull
z serwera, aby go utrzymać -spotykać się z kimś. Uwaga, skonfigurowałbym twój serwer WWW, aby ukrył katalog git i tym podobne. A to dopiero początek obaw o bezpieczeństwo.
Jeśli masz jakiekolwiek kompilacje lub przetwarzanie, powinieneś zacząć patrzeć na Ant , Maven , BuildR , SBT itp.
To jest skrypt w PHP do niemal automatycznego przesyłania git-diff na serwer FTP:
Darmowy na jeden projekt i działa bardzo dobrze.
Jest tutaj skrypt Ruby - Ruby git-deploy przez FTP lub SSH, który przesyła tylko zmienione pliki w repozytorium git za pośrednictwem FTP lub SSH.
Jak wspomniano w innej odpowiedzi, oto skrypt Pythona git-ftp.py, który robi podobną rzecz.
A oto wersja skryptu powłoki git-ftp .
Istnieje również projekt Ruby gem o nazwie git-deploy, który umożliwia skonfigurowanie niestandardowego wdrożenia za pomocą pilota git za pomocą git push
polecenia, w taki sam sposób, jak usługi Heroku i Azure. W tym przypadku może być konieczne napisanie niestandardowych metod do wdrożenia przez FTP i myślę, że zakłada się, że masz dostęp SSH do serwera produkcyjnego.
Jeśli wprowadzasz kod do produkcji, zalecam użycie „instalatora”, takiego jak pakiet RPM, do zainstalowania kodu. W ten sposób zostanie oznaczona wersja i będziesz mógł wykorzystać pakiet instalatora do obsługi aktualizacji kodu produkcyjnego. Git nie jest tak naprawdę zaprojektowany do obsługi instalacji produkcyjnych, jest przeznaczony do śledzenia zmian w samym kodzie.
W każdym razie, po zbudowaniu pliku .RPM (lub EXE lub czymkolwiek), możesz po prostu przesłać go przez FTP do systemu produkcyjnego i zainstalować jak każdy inny pakiet.
Zawsze możesz spróbować zamontować ftp w katalogu lokalnym używając http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem .
Wtedy można go używać tak samo jak ten .
Bardzo się starałem, żeby to rozgryźć. Wymyśliłem łatwy sposób na zrobienie tego z różnych źródeł ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , git-ftpPUSH ). Możesz przeczytać w celach informacyjnych, ale nie ma takiej potrzeby, ponieważ wspomniałem poniżej o procesie krok po kroku.
Po pierwsze: zainstaluj git i curl za pomocą brew w systemie Mac OS
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
Uruchom następujące polecenia:
git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Aktualizacja za pomocą git
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Ustawiać
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
Prześlij wszystkie pliki
git ftp init
Lub jeśli pliki już tam są
git ftp catchup
Pracuj i wdrażaj
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push
Jeśli wystąpi błąd: pathspec „index.txt” nie pasuje do żadnego pliku (ów) znanych gitowi . Oznacza to, że plik nie został jeszcze wystawiony, więc dodaj plik, a następnie spróbuj zatwierdzić.
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
Mam nadzieję że to pomoże.
Możesz spróbować FTPloy ...
„Wypychaj zmiany do GitHub lub Bitbucket”.
„Wdrażaj zmiany automatycznie na serwerze”
Masz jeden darmowy projekt, z którym możesz go wypróbować. Obecnie używam dla małej witryny php i działa całkiem dobrze. Kilka błędów na stronie, ale jest to aktywny projekt, więc przynajmniej nad nim pracują.
Sprawdź https://gitftp-deploy.com/, jeśli korzystasz z MacOS i lubisz GUI.
Jest to fajna mała aplikacja, która używa Gita do śledzenia zmian i przesyłania tylko zmienionych plików przez FTP.
Jest to szczególnie przydatne, jeśli nie lubisz płacić miesięcznych opłat za dziesiątki mniejszych projektów z małymi zespołami.