大家是怎么利用 Windows 写代码,并快速部署到 Linux 服务器上进行调试的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
plqws

大家是怎么利用 Windows 写代码,并快速部署到 Linux 服务器上进行调试的?

  •  
  •   plqws Jul 24, 2015 15634 views
    This topic created in 3932 days ago, the information mentioned may be changed or developed.
    我在 Windows 上写一个 Node 程序,但是调试的时候依赖一个 Linux 服务器上的 nginx,所以每次都要把编辑过的文件通过 FTP 上传到服务器上,感觉效率极低。

    想过 Git,但是 Git 提交的流程太繁琐。
    想过 SVN,但是 SVN 服务端需要安装 httpd,太鸡肋。
    想过 rSync,但是配置起来太繁琐,遂放弃。

    想问问各位有没有什么更妙的方法?
    58 replies    2015-07-25 14:19:59 +08:00
    n37r06u3
        1
    n37r06u3  
       Jul 24, 2015
    目前用git ...
    townboy
        2
    townboy  
       Jul 24, 2015
    这个问题也困扰我很久了
    learnshare
        3
    learnshare  
       Jul 24, 2015
    写代码肯定是 Git,服务器上同步一下就好了
    whtsky
        4
    whtsky  
       Jul 24, 2015 via iPad
    用 git 呀,写好钩子 add&commit&push 不就好了
    KentY
        5
    KentY  
       Jul 24, 2015
    我们是java, 同事挺多用windows的, 通过build server, continuous integration server自动部署。 我们用的是teamcity, jenkins 也行。
    tini28
        6
    tini28  
       Jul 24, 2015
    写个脚本自动通过git提交
    tobyxdd
        7
    tobyxdd  
       Jul 24, 2015
    git繁琐?LOL
    linkiosk
        8
    linkiosk  
       Jul 24, 2015
    dropbox能干这事吧
    lissome
        9
    lissome  
       Jul 24, 2015
    git
    xylophone21
        10
    xylophone21  
       Jul 24, 2015   1
    直接smb到Linux上写或者Sublime+SFTP插件

    谁说SVN服务端一定要装httpd?
    qw7692336
        11
    qw7692336  
       Jul 24, 2015
    @townboy


    这就是传说中的DevOps


    手动的方式就是用git提交,在服务端设置git hook,写一个部署脚本,最好是热部署。
    有很多云服务都支持git上传代码,自动部署,比如说openshift。
    为什么你需要在本地写好代码部署到服务器?如果使用外网IP进行调试,可以用ssh把服务器端的80端口映射到本地。或许你可以用sshfs把服务器端的文件映射到本地。
    plqws
        12
    plqws  
    OP
       Jul 24, 2015
    @xylophone21 CentOS 直接 yum 安装会出现依赖 httpd 的情况然后就给安装了…… 编译安装的话依赖配置太麻烦了。

    Sublime Text + SFTP 插件的方案很不错,刚刚试了下,很方便。谢谢,问题解决了。
    tonghuashuai
        13
    tonghuashuai  
       Jul 24, 2015
    git 还繁琐?那 lz 应该刚从 svn 转过来

    如果还是觉得繁琐的话,就配置一下自动部署吧,google 持续集成
    plqws
        14
    plqws  
    OP
       Jul 24, 2015
    @tonghuashuai 我写代码比较菜,经常是一分钟要改好多东西并且调试很多次,要是在图形界面把 Pull、Sync 等操作都进行实在是太麻烦了。
    我本来想写个轮子用 fs.watchFile 来轮流监控文件,然后再 exec git 来提交,感觉会很不错,不过 Sublime 的 SFTP 已经能够满足我的需求了。
    echo1937
        15
    echo1937  
       Jul 24, 2015
    IDE里面不都有一个"Tools" ---> "Deployment"的功能吗?
    icanfork
        16
    icanfork  
       Jul 24, 2015
    git hook
    tonghuashuai
        17
    tonghuashuai  
       Jul 24, 2015
    @plqws 我明白你的意思了

    这种情况下貌似靠版本控制工具不能根本解决,只有将运行环境和开发统一到一个地方才可以

    我之前遇到过一种情况有人这么干:
    代码在服务器上,然后本地用 IDE 打开服务器上的代码直接修改(ftp),不过还是不推荐这种方式
    yahoo21cn
        18
    yahoo21cn  
       Jul 24, 2015
    买两只仓鼠,教会他们编码,就全解决了
    zmj1316
        19
    zmj1316  
       Jul 24, 2015
    @yahoo21cn 两只估计不够,但是一只神奇的哥哥就可以解决了23333
    shenxgan
        20
    shenxgan  
       Jul 24, 2015
    你觉得开samba怎么样?
    ceyes
        21
    ceyes  
       Jul 24, 2015
    装个 Cygwin 然后 scp 多简单
    或者 rsync 也很方便啊 `rsync -azh /local/path/file [email protected]:/remote/path/file`
    akira
        22
    akira  
       Jul 24, 2015
    本地搭建开发环境。。@@
    itfanr
        23
    itfanr  
       Jul 24, 2015 via Android
    nfs或者samba
    choury
        24
    choury  
       Jul 24, 2015
    既然在linux上面部署,为什么不直接在linux下面开发呢
    wkdhf233
        25
    wkdhf233  
       Jul 24, 2015
    ExpanDrive直接把服务器的目录挂载成本地一个盘。。
    vibbow
        26
    vibbow  
       Jul 24, 2015
    Goodsync...
    kungfuchicken
        27
    kungfuchicken  
       Jul 24, 2015
    我用的phpstorm + nodejs 插件, phpstorm 支持自动部署,配置好服务器连接信息(支持FTP,SFTP)和对应目录(本机和服务器目录映射)之后,你只要保存代码,phpstorm就会把自动上传到服务器上,在项目目录里面添加删除文件phpstorm也会自动同步,非常方便
    zonghua
        28
    zonghua  
       Jul 24, 2015 via iPhone
    @kungfuchicken 脚本语言的好处
    yakczh
        29
    yakczh  
       Jul 24, 2015
    从这点上看,php果然是最好的语言
    ttph1oc
        30
    ttph1oc  
       Jul 24, 2015
    你可以本地使用winSCP,开启同步模式,自动上传修改。服务器上则用supervisor或PM2自动重启。
    tabris17
        31
    tabris17  
       Jul 24, 2015
    vagrant + VirtualBox
    hyt7212
        32
    hyt7212  
       Jul 24, 2015 via iPhone
    @tabris17 我也在尝试用这个,看起来不错
    charlie21
        33
    charlie21  
       Jul 24, 2015
    Vagrant 试过吗?
    P.S. 貌似你说的这个开发环境统一的问题,这个问题是 Vagrant 的典型应用场景? (我没用过)
    woodrat
        34
    woodrat  
       Jul 24, 2015
    Emacs + TRAMP
    DaCong
        35
    DaCong  
       Jul 24, 2015
    说实话,如果说git繁琐,那么,估计就没有不繁琐的了
    pubby
        36
    pubby  
       Jul 24, 2015
    putty 连上测试机 emacs 干活

    同事也用phpstrom 配置sftp之类的,save的时候自动同步到测试机
    jb的IDE应该都有这样的功能。
    ksupertu
        37
    ksupertu  
       Jul 24, 2015
    古老的ftp软件上上有一个自动比对同步文件夹的功能……
    js2854
        38
    js2854  
       Jul 24, 2015
    1.SftpDrive免配置,通过sftp可以直接把服务器的目录挂载成本地一个盘
    2.winscp自动同步本地文件修改到linux服务器
    XadillaX
        39
    XadillaX  
       Jul 24, 2015
    用 Mac 开发吧,如果不买的话也用 Linux 吧。
    ipconfiger
        40
    ipconfiger  
       Jul 24, 2015
    Docker 啊!
    pheyer
        41
    pheyer  
       Jul 24, 2015
    觉得Git繁琐难道就不会用客户端吗?
    Raidal
        42
    Raidal  
       Jul 24, 2015
    搭车问下:如何同步还未提交到公司svn上的代码到公司和家里的两台电脑上而不会冲突?

    为了解决公司和家里的电脑上都能实时同步代码,遂将代码存放在dropbox目录中,而这些项目已纳入公司svn库。实际使用中发现如下情况会发生冲突:

    在公司将文件a做过编辑,然后提及到svn,回到家中未先从svn中update最新的代码,而此时使用dropbox同步会出现文件a冲突。

    不知道大家是如何解决这类同步问题?
    Dowding
        43
    Dowding  
       Jul 24, 2015 via Android
    jetbrains的
    ide都是自带deployment的
    nisnaker
        44
    nisnaker  
       Jul 24, 2015
    我做web开发,本地用Virtualbox装的Centos7,然后通过共享目录连接主机和虚拟机,主机上只有sublime,做开发用。其他所有环境都在虚拟机里,浏览器直接输虚拟机的ip,或者配置主机的host,配一些假的域名指向虚拟机ip。
    nisnaker
        45
    nisnaker  
       Jul 24, 2015
    @Raidal 我直接把本背回家。。。
    zhyq132
        46
    zhyq132  
       Jul 24, 2015
    vagrant+vbox
    yuankui
        47
    yuankui  
       Jul 24, 2015
    你可以试试samba...

    把linux的目录映射到 windows的一个目录,你像是在windows编辑代码,但是实际上操作的事linux目录..
    clino
        48
    clino  
       Jul 24, 2015
    git的提交过程复杂吗?
    msg7086
        49
    msg7086  
       Jul 25, 2015
    virtualbox的共享目录功能,直接把本机的目录映射到linux内,即可。

    @pheyer 用客户端一小时提交推送几十次就不繁琐了?
    xiaobu
        50
    xiaobu  
       Jul 25, 2015
    终端vim呢
    tcsky
        51
    tcsky  
       Jul 25, 2015
    virtualbox 的目录挂载(vagrant最好), Samba卡的没法用.
    wangjie
        52
    wangjie  
       Jul 25, 2015
    git不是比ftp快多了?如果还嫌麻烦可以写一个程序自动传嘛
    no13bus
        53
    no13bus  
       Jul 25, 2015 via iPhone
    文件夹同步。
    loading
        54
    loading  
       Jul 25, 2015
    如果楼主是说代码调试,你需要跑个虚拟机在本机,然后用virtualbox共享目录这一类工具。
    你每次都传到远端的服务器,这是错误的开发方式!网速再快,也没本地快的。
    zongwan
        55
    zongwan  
       Jul 25, 2015
    docker + 1
    vagrant 也经常会用(本地调试)

    sublime text 在win 和 mac上的版本最好用
    coolicer
        56
    coolicer  
       Jul 25, 2015
    今天看到这个http://4front-slides.aerobatic.io/#/
    qianlifeng
        57
    qianlifeng  
       Jul 25, 2015
    最近发现一个上传文件的利器:szrz+xshell 实现拖拽上传,不过话说用git应该不算麻烦
    blue7wings
        58
    blue7wings  
       Jul 25, 2015
    sshfs
    About     Help     Advertise     Blog     API     FAQ     Solana     3426 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 151ms UTC 10:57 PVG 18:57 LAX 03:57 JFK 06:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86