Antworten:
Einige Tools, die kürzlich zum Git-Wiki hinzugefügt wurden :
git-ftp von René Moser ist ein einfaches Shell-Skript, mit dem FTP auf Git-Weise ausgeführt werden kann. Verwenden Sie git-ftp.sh, um nur die von Git verfolgten Dateien auf einen FTP-Server hochzuladen, die sich seit dem letzten Upload geändert haben. Das spart Zeit und Bandbreite. Selbst wenn Sie mit verschiedenen Zweigen spielen, weiß git-ftp.sh, welche Dateien unterschiedlich sind. Kein gewöhnlicher FTP-Client kann das.
git-ftp von Edward Z. Yang ist ein einfaches Skript, das in Python geschrieben wurde, um Dateien in ein Git-Repository über FTP hochzuladen, nur neue Dateien zu übertragen und alte Dateien zu entfernen.
Wenn Sie die grafische Benutzeroberfläche bevorzugen, verwenden Sie SourceTree. Sie können problemlos eine benutzerdefinierte Aktion einrichten, die das oben erwähnte git-ftp verwendet. Eine kurze Beschreibung zum Setup (für Mac) unter Push a Git Repository to a FTP
Ich habe festgestellt, dass PHPloy ein großartiges Tool zum Senden Ihrer Git-Commits an Remote-Server über FTP ist. Es funktioniert über die Befehlszeile und ist in PHP geschrieben (und erkennt sogar Änderungen in Submodulen).
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
Getan!
(Haftungsausschluss: Nachdem ich es eine Weile verwendet habe, habe ich jetzt einige Code-Patches und Verbesserungen beigesteuert, die es Windows-kompatibel machen.)
Wenn Sie auf einem Mac arbeiten und Transmit haben, würde ich das folgende git-tranmit-Skript empfehlen ( https://gist.github.com/379750 ). Es verwendet DockSend, um nur die zuletzt aktualisierten Dateien zu senden. Wenn Sie mit DockSend nicht vertraut sind, besuchen Sie http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ .
Konfiguration:
Genau dafür ist Git nicht gedacht. Wenn Ihre Quelle jedoch nicht kompiliert oder verarbeitet werden muss, z. B. eine Website, die ausschließlich aus HTML- und Javascript-Dateien und dergleichen besteht, können Sie einen Klon des Repos auf Ihrem Webserver haben und git pull
vom Server aus verwenden, um ihn aufrechtzuerhalten -miteinander ausgehen. Hinweis, ich würde Ihren Webserver so konfigurieren, dass das Git-Verzeichnis und dergleichen ausgeblendet wird. Und das ist erst der Anfang der Sicherheitsbedenken.
Wenn Sie irgendeine Art von Kompilierung oder Verarbeitung haben, sollten Sie sich Ant , Maven , BuildR , SBT usw. ansehen .
Dies ist ein Skript in PHP, mit dem das Git-Diff fast automatisch auf einen FTP-Server hochgeladen wird:
Kostenlos für ein Projekt und es funktioniert sehr sehr gut.
Hier gibt es ein Ruby-Skript - Ruby Git-Deployment über FTP oder SSH, das nur die geänderten Dateien im Git-Repo über FTP oder SSH hochlädt.
Wie in einer anderen Antwort erwähnt, ist hier das Python-Skript git-ftp.py, das eine ähnliche Funktion ausführt .
Und hier ist die Shell-Skript-Version von git-ftp .
Es gibt auch ein Ruby Gem-Projekt namens git-deploy, mit dem Sie eine benutzerdefinierte Bereitstellung über eine Git-Fernbedienung mithilfe des git push
Befehls einrichten können, genau wie bei den Heroku- und Azure-Diensten. In diesem Fall müssen Sie möglicherweise benutzerdefinierte Methoden für die Bereitstellung über FTP schreiben. Ich gehe davon aus, dass Sie über SSH-Zugriff auf Ihren Produktionsserver verfügen.
Wenn Sie Code in die Produktion einbauen, empfehle ich die Verwendung eines "Installationsprogramms" wie eines RPM-Pakets, um Ihren Code zu installieren. Auf diese Weise wird die Version mit einem Stempel versehen, und Sie können das Installationspaket nutzen, um Aktualisierungen des Produktionscodes zu unterstützen. Git ist nicht wirklich für die Unterstützung von Produktionsinstallationen konzipiert, sondern soll Änderungen am Code selbst verfolgen.
In jedem Fall können Sie mit einem .RPM (oder EXE oder was auch immer) es einfach per FTP auf das Produktionssystem übertragen und wie jedes andere Paket installieren.
Fügen Sie es als Fernbedienung hinzu, und Sie können darauf pushen. Es reicht jedoch nicht aus, nur Code zu pushen. Es muss mit dem Arbeitsbaum zusammengeführt werden. Der einfachste Weg ist, in die andere Richtung zu gehen, einen funktionierenden Baum auf dem Server zu haben und diesen abzurufen und zusammenzuführen.
Sie können jederzeit versuchen, das FTP mithilfe von http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem in ein lokales Verzeichnis zu mounten .
Dann können Sie es auf die gleiche Weise wie nutzen diese .
Ich hatte große Mühe, das herauszufinden. Ich habe einen einfachen Weg gefunden, dies aus verschiedenen Quellen zu erreichen ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , git-ftpPUSH ). Sie können als Referenz lesen, aber es besteht keine Notwendigkeit, da ich den schrittweisen Prozess unten erwähnt habe.
Das erste zuerst: Installieren Sie Git and Curl mit Brew unter MAC OS
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
Führen Sie die folgenden Befehle aus:
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
Aktualisierung mit git
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Konfiguration
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
Laden Sie alle Dateien hoch
git ftp init
Oder wenn die Dateien schon da sind
git ftp catchup
Arbeiten und bereitstellen
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push
Wenn ein Fehler auftritt: pathspec 'index.txt' stimmte nicht mit Dateien überein, die git bekannt sind . Dies bedeutet, dass die Datei noch nicht bereitgestellt wurde. Fügen Sie die Datei hinzu und versuchen Sie es mit Commit.
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
Hoffe das hilft.
Sie können FTPloy versuchen ...
"Push-Änderungen an GitHub oder Bitbucket."
"Änderungen automatisch auf Ihrem Server bereitstellen"
Sie haben ein kostenloses Projekt, mit dem Sie es ausprobieren können. Ich benutze derzeit für eine kleine PHP-Website und es funktioniert ganz gut. Ein paar Fehler auf der Seite, aber es ist ein aktives Projekt, also arbeiten sie zumindest daran.
Überprüfen Sie https://gitftp-deploy.com/, ob Sie unter MacOS arbeiten und GUIs mögen.
Es ist eine nette kleine Anwendung, die Git verwendet, um Änderungen zu verfolgen und nur die geänderten Dateien mit FTP hochzuladen.
Besonders praktisch, wenn Sie nicht gerne monatliche Gebühren für Dutzende kleinerer Projekte mit kleinen Teams zahlen.