Git投入生产(FTP)

Git投入生产(FTP),git,ftp,push,Git,Ftp,Push,我想知道是否有一种简单的方法可以将GIT存储库推送到生产环境中(在FTP服务器上)? 谢谢如果您要将代码投入生产,我建议使用“安装程序”,如RPM软件包来安装代码。这样,它将被打上版本戳,并且您将能够利用安装程序包来支持对生产代码的更新。Git的设计并不是为了支持生产安装,而是为了跟踪代码本身的更改 在任何情况下,如果生成了.RPM(或EXE或其他任何文件),您只需将其FTP到生产系统中,并像其他任何软件包一样进行安装。将其作为远程软件添加,然后您就可以推送到该软件包中,但是仅仅推送代码是不够的

我想知道是否有一种简单的方法可以将GIT存储库推送到生产环境中(在FTP服务器上)?
谢谢

如果您要将代码投入生产,我建议使用“安装程序”,如RPM软件包来安装代码。这样,它将被打上版本戳,并且您将能够利用安装程序包来支持对生产代码的更新。Git的设计并不是为了支持生产安装,而是为了跟踪代码本身的更改


在任何情况下,如果生成了.RPM(或EXE或其他任何文件),您只需将其FTP到生产系统中,并像其他任何软件包一样进行安装。

将其作为远程软件添加,然后您就可以推送到该软件包中,但是仅仅推送代码是不够的,需要将其与工作树合并。最简单的方法是反过来,在服务器上有一个工作树,然后获取并合并到其中。

严格来说,这不是git的用途。但是,如果您的源代码不需要编译或处理,比如说一个完全由html和javascript文件等组成的网站,您可以在Web服务器上克隆repo,并使用服务器上的git pull,使其保持最新。注意,我会将您的Web服务器配置为隐藏git目录等。这只是安全问题的开始


如果您有任何类型的编译或处理,您应该开始查看、等。

最近添加到

勒内·莫瑟的作品是一个简单的故事 用于对Git执行FTP的shell脚本 对。使用git-ftp.sh仅上载 Git将文件跟踪到FTP服务器, 自上一次以来发生了哪些变化 上传。这节省了时间和带宽。 即使你玩不同的游戏 分支,git-ftp.sh知道哪些文件 它们是不同的。没有普通的FTP客户端 我能做到

由爱德华·Z·杨(Edward Z.Yang)创作的是一部电影 用python编写的用于 在Git存储库中上载文件 通过FTP,仅传输新文件 以及删除旧文件


如果您在mac上,并且有Transmit,我建议您使用以下git Transmit脚本()。它使用DockSend只发送最后更新的文件。如果您不熟悉DockSend,请查看

设置:

  • cp git transit/usr/sbin/
  • cd/usr/sbin
  • chmod+xgit传输
  • 为您的live应用安装drop send
  • 在git存储库中运行git transmit

  • 这里有一个Ruby脚本,它只通过FTP或SSH上传git repo中更改的文件

    正如在另一个答案中提到的,这里有一个做类似事情的例子

    这是的shell脚本版本


    还有一个名为Ruby gem的项目,它允许您使用
    git push
    命令通过git远程设置自定义部署,方式与Heroku和Azure服务相同。对于这一个,您可能需要编写自定义方法通过FTP进行部署,我认为这是假设您对生产服务器具有SSH访问权限。

    这是一个PHP脚本,几乎可以自动将git diff上传到FTP服务器:


    如果您喜欢GUI,请使用SourceTree,您可以轻松设置使用上述git ftp的自定义操作。关于设置(适用于Mac)的简要说明


    我发现PHPloy是一个通过FTP将Git提交发送到远程服务器的好工具。它从命令行开始工作,并用PHP编写(甚至检测子模块中的更改)

    git commit ...
    phploy -s staging
    phploy -s production
    
    完成了


    (免责声明:在使用了一段时间后,我现在提供了一些代码补丁和改进,使其与Windows兼容。)

    您始终可以尝试使用将ftp装载到本地目录


    然后你可以用与相同的方法来使用它。

    我一直在努力解决这个问题。我已经想出了一个简单的方法,从各种来源(,)来完成这项工作。你们可以阅读参考,但并没有必要,因为我已经在下面提到了一步一步的过程

    第一件事:在MAC OS上使用brew安装git和curl

    brew install git
    brew install curl --with-ssl --with-libssh2
    brew install git-ftp
    
    运行以下命令:

    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
    
    上载所有文件

    git ftp init
    
    或者如果文件已经存在

    git ftp catchup
    
    工作和部署

    echo "Hello StackOverflow" >> index.txt
    git commit application/libraries/index.txt -m "I love StackOverflow"
    git ftp push
    
    如果出现错误:pathspec“index.txt”与git已知的任何文件都不匹配。这意味着该文件尚未暂存,因此请添加该文件,然后尝试提交

    git add application/libraries/index.txt
    git commit application/libraries/index.txt -m "I love StackOverflow"
    

    希望这有帮助

    你可以试试FTPloy

    “将更改推送到GitHub或Bitbucket。”

    “自动将更改部署到服务器”

    你有一个免费的项目可以试用。我目前正在使用的一个小php网站,它的工作相当好。网站上有一些bug,但它是一个活跃的项目,所以至少他们正在处理它。


    一个项目免费,效果非常好。

    你可以使用Deployhq.com它的效果非常好,你只需要设置你的存储库和FTP帐户

    他们目前使用以下版本控制系统:

    Git、Subversion、Mercurial。

    使用托管的存储库

    • GitHub
    • 比特桶
    • GitLab
    • 代码基

    检查您是否使用MacOS并且喜欢GUI

    这是一个很好的小应用程序,它使用Git跟踪更改并使用FTP只上载更改的文件


    如果你不喜欢为几十个小型团队的小型项目支付月费,那么使用git尤其方便。

    事实上,git可以很好地实现这一目的。签出标记并创建签出后、合并后等挂钩,以处理所需的任何安装过程。我们曾经使用RPM软件包,但在迁移到git之后,这简直是太过了。唯一的问题是,当您无法访问生产服务器时,也就是说,它可能是简单的共享主机,只有FTP访问。使用git FTP,是否有办法只推送一个子目录(例如,pu
    echo "Hello StackOverflow" >> index.txt
    git commit application/libraries/index.txt -m "I love StackOverflow"
    git ftp push
    
    git add application/libraries/index.txt
    git commit application/libraries/index.txt -m "I love StackOverflow"