• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fkbd
V2EX  ›  程序员

脱离了 git,我现在用 sftp+phpstorm 来实现多人合作开发。

  •  
  •   fkbd · Oct 29, 2017 · 12698 views
    This topic created in 3300 days ago, the information mentioned may be changed or developed.
    上个月脱离了 git,使用了 sftp。

    先说一下情况:
    1.团队人数比较少,只有 4 个人。并且大家希望在开发的过程中,可以实时看到整体的情况。

    2.因为是底层开发的情况,又使用了敏捷开发的模式。虽然我们开发前进行过函数的统一,但每个人的代码都可能随时为适应整体做出一些小改变,进而影响另一个人。我们希望能即使的沟通,并且随时保证函数代码能通用。

    3.我们在实际过程中,发现我们统一在公共服务器上实时预览效果能帮助我们更好的了解程序整体。

    再说一下,可能为引起各位疑惑的问题。

    1.同一文件的反复提交覆盖:因为 ide 自身提供了 merge 的功能,所以这一问题能很好的解决。
    2.历史版本:ide 自身提供了历史库,历史也都可以追溯。
    3.为什么不用 git:git 的仓库很好很好用。但是对于需要关联密切的底层开发,仓库反复的提交、下载,显得有些累赘。

    使用 sftp 管理的心得:
    这样处理确实大大加快了开发的进度,得力于良好的沟通,代码也不会出现问题。A 写接口,B 写逻辑,双方完成后提交马上可以看到结果。A 和 B 能根据双方的思路,沟通出更适合的逻辑并写实时的看到结果。

    当然这套开发的程序,我也只建议在这一阶段使用。能到实际上线后,我们还是会使用 git 的方式进行版本迭代。
    Supplement 1  ·  Oct 30, 2017
    先认个错,评论说的意见都值得我深思。选择这种方式合作开发,确实存在问题。
    使用 IDE 自身的合并、提交、冲突解决,也能达到部分 git 的效果。这一阶段。这种合作方式在小圈子里提高了效率,上线后会马上改回 git。
    没有用 git 和 svn 的原因,我们会涉及到很多关于引擎的处理和重编译(一名工程师负责),也是想节省本地部署的精力。
    我们都用 jetbrains 家 IDE,但只有用了 phpstorm。
    Supplement 2  ·  Oct 30, 2017
    我们都用 jetbrains 家 IDE,但只有我用了 phpstorm。
    79 replies  •  2017-10-30 18:02:00 +08:00
    CFO
    CFO
    Oct 29, 2017 via Android
    1
    版本管理不只是用来上传代码的
    konakona
    konakona
    Oct 29, 2017
    2
    用 git 的思想去用 sftp,结合 IDE 提供的 history,应该是可行的。
    defunct9
    defunct9
    Oct 29, 2017 via iPhone
    3
    不可取吧
    epkT6QJ3RSaz6AnJ
    epkT6QJ3RSaz6AnJ
    Oct 29, 2017
    4
    对于删除文件怎么处理?对于冲突怎么处理?直接覆盖?
    qdwang
    qdwang
    Oct 29, 2017 via iPhone❤️2
    5
    此方法适合没有分支的情况,挺好的,6 年前就这么干了
    sagaxu
    sagaxu
    Oct 29, 2017❤️39
    6
    民科总是有民科的办法,理论也是一套一套的
    ryd994
    ryd994
    Oct 29, 2017
    7
    你知不知道 SVN ?
    renothing
    renothing
    Oct 29, 2017
    8
    @sagaxu 手动点赞~
    liangeeks
    liangeeks
    Oct 29, 2017
    9
    @konakona 换环境呢?其他人那儿有没有你的 History
    workwonder
    workwonder
    Oct 29, 2017 via Android
    10
    心累
    fkbd
    fkbd
    OP
    Oct 29, 2017
    11
    @epkT6QJ3RSaz6AnJ ide 自身有这个功能,能处理删除文件的提示,冲突提示,merge 的操作
    fkbd
    fkbd
    OP
    Oct 29, 2017
    12
    @liangeeks history 也可以同步的
    fkbd
    fkbd
    OP
    Oct 29, 2017
    13
    @liangeeks 并且在底层这个阶段,其实不依赖 history,只要保持程序都是最新的就行。
    wtbhk
    wtbhk
    Oct 29, 2017
    14
    3.为什么不用 git:git 的仓库很好很好用。但是对于需要关联密切的底层开发,仓库反复的提交、下载,显得有些累赘。
    ------
    sftp 不需要上传和下载吗……
    xiaolanglang
    xiaolanglang
    Oct 29, 2017
    15
    idea 的 history 不就是一个本地的 git 仓库么?
    wm5d8b
    wm5d8b
    Oct 29, 2017
    16
    从删库到跑路
    wsy2220
    wsy2220
    Oct 29, 2017
    17
    又黑 PHP
    azhi
    azhi
    Oct 29, 2017 via Android
    18
    呵呵哒,谁删了你的代码都不知道
    oisc
    oisc
    Oct 29, 2017
    19
    这个不叫团队,叫作坊
    iyaozhen
    iyaozhen
    Oct 29, 2017 via Android❤️1
    20
    请注意倒车。
    至少 3 年前遇到过一个外包公司就是这样搞的。

    不过没有最好只有最适合,这样也挺好的。小团队推单测、持续集成也不太合适
    towser
    towser
    Oct 29, 2017
    21
    phpstorm 有 git 插件。
    bramblex
    bramblex
    Oct 29, 2017
    22
    你们怕不是不知道还有多少 php 程序员还在用 cp 做版本管理的吗?
    楼主已经很不 php 了好吧.
    tlday
    tlday
    Oct 29, 2017 via Android
    23
    你们这样等于为了一个实时预览抛弃了围绕 git 产生的一系列开源工具与最佳实践。
    git 仓库的实时预览可以通过 gitlab,github+octree(名字记不清了)或其他类似工具实现。还附带分支切换预览,文件比对,打包下载,ci/cd,自动化测试,blame,history,权限控制,等等。
    newdongyuwei
    newdongyuwei
    Oct 29, 2017❤️2
    24
    “因为是底层开发的情况,又使用了敏捷开发的模式”, 底层开发? 确实挺 low 啊!不带这么黑敏捷开发的。。。难道版本控制不是软件开发的根本基础吗?

    这种倒车负分经验还是别分享了,有这污点,以后面试都难。
    learnshare
    learnshare
    Oct 29, 2017
    25
    嗯,不需要版本管理,不如 OneDrive 之类的实时同步
    Phariel
    Phariel
    Oct 29, 2017 via Android
    26
    你这样跟打包 QQ 互传区别在哪?多了个服务器?
    klgd
    klgd
    Oct 29, 2017
    27
    我有点儿懵,用 PHP 写什么底层然后会导致你们放弃版本控制(不单单值 git )?
    scofieldpeng
    scofieldpeng
    Oct 29, 2017❤️1
    28
    这倒车开得。。。没看到有先进和方便在哪儿,我就说这么几个最简单的问题:
    1. 有个组员回家了之后激情仍在,想通宵写代码,你这个方案搞一下?你的 history 怎么保存呢?
    2. 如果组员需要写同一个文件,你这个怎么弄?哎小 A,1-1000 行是我的,你就不要碰了,先敲 1000 个空白行再接着开发,小 C,你的是 2001-3000 行,你得敲 3000 个空白行哦,别忘了
    3. 擦,明明我本地是好的,怎么不对了,哎,大伙们,你们谁改了我 xxx 文件下第 yyy 行 zzz 列的那个函数?
    还不说楼上说的自动部署,集成测试以及删库跑路,就这 3 个问题你这方案就歇菜了
    SlipStupig
    SlipStupig
    Oct 29, 2017
    29
    开 feature 和 bugfix 同时进行的时候,你们怎么处理呢?
    johnnie502
    johnnie502
    Oct 29, 2017
    30
    这不叫协同开发,这叫每人负责一个模块开发,不然就是一锅粥
    Felldeadbird
    Felldeadbird
    Oct 29, 2017
    31
    小团队短时间内攻关可以选择。
    但业务上线后,必须马上切换版本库了。否则后续会很多问题出现的。到时候管理就会一锅粥。很多小公司都是这么干的。
    楼主是有想法的,但是希望楼主离职前把项目切换回版本库去吧。否则容易祸害后人 :)
    kiwi95
    kiwi95
    Oct 29, 2017 via Android
    32
    楼主说就 4 个人,估计项目也不大,要是所有人对 git 都不熟,用 sftp 也没什么,不过这经验不值得学习,毕竟我一个人的代码也需要 git 管理…
    gouchaoer
    gouchaoer
    Oct 29, 2017 via Android
    33
    我觉得可以,只要用的顺手就行
    chmlai
    chmlai
    Oct 29, 2017
    34
    哈哈哈
    wdlth
    wdlth
    Oct 29, 2017
    35
    都变成了 local history 还追溯谁干的?
    HuangLibo
    HuangLibo
    Oct 29, 2017
    36
    其他组员居然还能忍, 也是奇迹. 物以类聚?
    rainex
    rainex
    Oct 29, 2017❤️1
    37
    这不是开倒车,也不是回归原始社会,这是直接回归到地球生命的起源状态
    eternal403
    eternal403
    Oct 30, 2017
    38
    这还不是开倒车?我们团队也 4 个人,git 各种 feather,git flow 用得贼溜。 对于需要关联密切的底层开发,仓库反复的提交、下载,显得有些累赘。 这不正是 git 的优势么?虽然说,用自己顺手的工具就好,但是个人还是强烈建议可以适当花时间多看下 git,感觉楼主提到的问题都不是个事儿。
    fetich
    fetich
    Oct 30, 2017
    39
    前公司的老做法,后来过渡到了 Git/Hg。#6 的言论让我笑了半天。
    pynix
    pynix
    Oct 30, 2017 via iPhone
    40
    强势围观
    kwan
    kwan
    Oct 30, 2017
    41
    666,会玩啊,出了问题只能怪服务器君
    msg7086
    msg7086
    Oct 30, 2017
    42
    不考虑改用 Google Docs 吗?(
    ghostsf
    ghostsf
    Oct 30, 2017 via Android
    43
    所以只是为了实时预览?怕是不知道通过 hook 来自动化部署哦
    naiba
    naiba
    Oct 30, 2017 via Android
    44
    gg
    carlclone
    carlclone
    Oct 30, 2017 via Android
    45
    楼主刷新了 PHPER 的下限,哎
    int64ago
    int64ago
    Oct 30, 2017
    46
    比 Linux 内核还底层?

    不要拿底层开发当借口,直接就说不会用 Git 嘛
    imnpc
    imnpc
    Oct 30, 2017
    47
    单人开发可以这样
    多人开发千万不能这样
    66beta
    66beta
    Oct 30, 2017
    48
    就是懒得多提交几次,将工作量转嫁到人力沟通上,但是程序员的沟通往往都是弱项吧
    jokerjoker
    jokerjoker
    Oct 30, 2017
    49
    干嘛不直接百度网盘,自动同步多台设备
    anyele
    anyele
    Oct 30, 2017
    50
    #6 的回复看得笑了. 物以类聚吧
    xomix
    xomix
    Oct 30, 2017
    51
    ………… po 不知道 snv 吗,你这个功能就是标准的不需要 git 的大部分功能,上个 svn/tfs 就行的,结果你自己摸索一套组合,功能还不全面再用 git 补全,我真的挺佩服你这种天堂有路你不走的勇气的。
    Clarencep
    Clarencep
    Oct 30, 2017
    52
    "ide 自身提供了历史库" -- 呵呵

    电脑要是异常关机一次(比如断电),PHPStorm 的工程文件可能会损坏的,然后那些历史库就呵呵了。。。

    别问我是如何知道的
    vela
    vela
    Oct 30, 2017
    53
    就说一件事……第五个进来时看到这 workflow,会不会扭头走…… 233
    其实我觉得土办法啊民科真没什么可耻的,it works 就好……适应你的需求就完全没问题。
    前提是,别说出来,不然真的很难不被嘲笑。

    我听说某大厂就是 jvm 设置个定时脚本重启,解决了无数疑难杂症,什么 GC 问题什么内存泄露,就是肝!可灵了,但是这蠢蠢的办法说出来依然不免被大家当谈资。呵呵。
    congminghaoxue92
    congminghaoxue92
    Oct 30, 2017
    54
    见过一个 8 个人的 c#团队的操作,那才叫一个先进生产力呢!!没有 git,没有 svn,也没有 sftp 当然没有 ftp,甚至没有微软家的 tfs。改动或 bug 修复前,会在本地复制文件夹记上日期,修改后编译成 dll。然后,重点来了,打开远程登录,直接把 dll 复制到服务器。第一次看到惊呆了 word 哥!!
    5dkgansm
    5dkgansm
    Oct 30, 2017
    55
    @congminghaoxue92 很多企事业单位是内网隔离的,连 ftp 都不让装的,能直接远程登录拖文件已经很给面子了。
    nekoyaki
    nekoyaki
    Oct 30, 2017
    56
    你哪怕用 dropbox 呢都比 ftp 强啊……
    我大学时候做课设,组内没人会 git,我没办法才让大伙拿 dropbox 当 git 用。
    iyangyuan
    iyangyuan
    Oct 30, 2017 via iPhone
    57
    都是大神级别
    lcc4376
    lcc4376
    Oct 30, 2017
    58
    團隊合作或單幹都用 git ,以前不會 git 用 dropbox 但那是 4 年前的事
    cloudzhou
    cloudzhou
    Oct 30, 2017
    59
    看了这么久,没理解不用 git 的原因。
    我猜测是这样的,你们开发的时候,需要非常及时的在线可看,并且相互修改代码。
    如果用 git 的分支管理,涉及到分支合并,提交和发布,比较麻烦。
    但是目前,完全可以这么做:

    1 大家都在一个分支下开发,习惯性 pull,merge,push,及时解决冲突。
    2 使用 webhook 线上触发发布,只需要推送到特定分支,或者打一个 tag 就可以了。

    需要明确一点,冲突解决是关键,不管是 sftp 和 git,都是需要解决的。
    但是如果使用 sftp,你把 git 所有的优势,特性都丧失了。
    kuro1
    kuro1
    Oct 30, 2017
    60
    请注意,倒车!
    pagxir
    pagxir
    Oct 30, 2017 via Android❤️1
    61
    楼主这是认真学习了会议精神呀。
    pynix
    pynix
    Oct 30, 2017 via iPhone
    62
    @pagxir 快递到了
    konakona
    konakona
    Oct 30, 2017
    63
    @liangeeks 团队规范本来就要每个人都适应,如果适应不了,就换人。这是一个很简单都道理。不用想得太复杂,如果 team leader 选了一个方法而大部分人能执行,只有少数人因个人原因无法执行,请你告诉我,这叫什么?
    firebroo
    firebroo
    Oct 30, 2017
    64
    @boywang004 笑了我半天。。就是肝
    coolcoffee
    coolcoffee
    Oct 30, 2017
    65
    别的不说,就还要绑定 IDE,我就得举个反对。

    虽然我也很喜欢 jetbrains,但万一哪天想要用下轻量级的 vs code,我还得挂个超级占内存的 phpstorm ?
    sampeng
    sampeng
    Oct 30, 2017
    66
    你要这么说。。那 dropbox 之类网盘不更给力一点。。。
    自建 seafile 网盘。。秒同步。
    clino
    clino
    Oct 30, 2017
    67
    "仓库反复的提交、下载,显得有些累赘" 这逻辑怎么出来的?
    QAPTEAWH
    QAPTEAWH
    Oct 30, 2017
    68
    这多麻烦,建议复制粘贴发 QQ 消息
    oska874
    oska874
    Oct 30, 2017
    69
    底层?有多底层?我写汇编还得用 git/svn 呢
    wingoo
    wingoo
    Oct 30, 2017
    70
    你们高兴就好
    sagaxu
    sagaxu
    Oct 30, 2017 via Android
    71
    @oska874
    @int64ago
    他说的底层是 lowb 的那个底层,不是系统底层,不要理解错了
    weegc
    weegc
    Oct 30, 2017
    72
    你们开心就好
    pangliang
    pangliang
    Oct 30, 2017 via iPhone
    73
    用 git 和用 sftp 直接上传开发机根本不冲突
    keenkiller
    keenkiller
    Oct 30, 2017
    74
    不懂为啥这么搞…没看到优势
    hotReady
    hotReady
    Oct 30, 2017
    75
    之前是通过 sftp+netbeans+svn,后来加强安全规范,添加了跳板机登录,sftp 就行不通了。

    目前使用 samba+phpstorm+git 实现代码上传下载。
    abcbuzhiming
    abcbuzhiming
    Oct 30, 2017
    76
    就算你们用不惯 git,至少也要上 svn 啊
    bbao
    bbao
    Oct 30, 2017
    77
    这是一家觉得自己不会人员扩张以及开发代码量不大且不招人的公司

    我记得,08 年实习那会儿,使用各种 ftp 进行上传,找问题,各种翻啊翻啊翻。棒棒哒
    winglight2016
    winglight2016
    Oct 30, 2017
    78
    不知道还有人用了 git 觉得不好用,更万万想不到用 ftp+local history 来做源代码管理——实时预览是说即时更新服务器吗?前面有人说了 gitlab+webhook+Jenkins 就搞定了啊
    ihuzhou
    ihuzhou
    Oct 30, 2017
    79
    听见敏捷开发就头疼。产品以为敏捷开发就是不写文档,开发以为敏捷开发就是不写文档+不写注释+不需要版本控制+不需要单元测试。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   947 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 148ms · UTC 19:19 · PVG 03:19 · LAX 11:19 · JFK 14:19
    ♥ Do have faith in what you're doing.