|  |      1rwx      2013-08-06 09:18:20 +08:00 git | 
|  |      2felix021      2013-08-06 09:19:23 +08:00 目测楼主真的是没有听说过版本管理的概念。。。 | 
|  |      3humiaozuzu      2013-08-06 09:20:54 +08:00 版本管理+自动化部署 | 
|  |      4welsonla      2013-08-06 09:23:07 +08:00 1你可以看看自动化部署, 2.你把代码提交到git,每次修改先git commit,看看本地涉及到了哪些文件 | 
|  |      5hellohacker OP git 和svn这些我了解过 但是这些不都也要提交吗。能否给我个详细的方案。 | 
|  |      6lichao      2013-08-06 09:26:04 +08:00 | 
|  |      7ushuz      2013-08-06 09:29:23 +08:00 @hellohacker 既然了解过,何不试试看? | 
|  |      8williamx      2013-08-06 09:36:42 +08:00 lz可能还不知道流程。我想大家的意思应该是,把修改push到git服务器,然后在网站服务器上pull代码。 我对网站开发不熟,有知道的最好说多一点,好让lz google的时候也有关键字。 | 
|  |      9Livid MOD PRO 最快的方法: 在本地机器和服务器上都安装 BTSync,然后就自动同步了。 | 
|  |      10felix021      2013-08-06 09:40:51 +08:00 | 
|  |      11vibbow      2013-08-06 09:47:12 +08:00 用GoodSync,关联本地目录和服务器目录,任何一边修改了,都可以同步到另一边。 | 
|  |      12pythoner      2013-08-06 09:48:06 +08:00 git + fabric 世界会美好很多 | 
|  |      13vibbow      2013-08-06 09:49:43 +08:00 GoodSync的强大之处就是支持各种连接方法,实属同步/备份利器。 http://vsean.net/pic/di-YLQR.png | 
|  |      14vibbow      2013-08-06 09:53:55 +08:00 补充:GoodSync也可以设置排除,多线程同步,定时同步。 还有一些其他的功能,比如说对于软连接,是同步为软连接,还是向下探寻;或者同步完成/失败后发送邮件,保留被删除的文件等等功能(反正我都没用) | 
|  |      15hellohacker OP 谢谢大家的精彩回答 受益匪浅! | 
|  |      16wwqgtxx      2013-08-06 10:19:43 +08:00 via Android 用git hook应该也可以,具体方法可以看看gitpro这本书 | 
|  |      17wwqgtxx      2013-08-06 10:20:54 +08:00 via Android 是progit,手滑了一下…… | 
|  |      18BeijingBaby      2013-08-06 10:22:37 +08:00 @wwqgtxx 滑了一下 | 
|  |      19wwqgtxx      2013-08-06 10:23:55 +08:00 via Android | 
|  |      20Ricepig      2013-08-06 10:45:16 +08:00 金山快盘百度网盘DBankEverBoxYunio等等等等 | 
|      21phuslu      2013-08-06 10:55:37 +08:00 楼主你其实可以试下 winscp 的同步功能。。。 | 
|  |      22vivianalive      2013-08-06 10:55:47 +08:00 一个人维护三个网站...我很惊讶你竟然没有使用版本管理软件. 试想一下,如果是三个人维护一个网站,你们要怎么追踪,记录,解决各自的改动和冲突呢? 所以,你需要GIT/SVN/SourceAnywhere + 任意一款FTP工具. | 
|  |      23buru      2013-08-06 10:57:36 +08:00 我用svn,代码一次提交,然后show log,选择added 和 modified 的文件,export出来,然后ftp 上传至服务器,done | 
|  |      24buru      2013-08-06 10:59:24 +08:00 我对git不熟悉,我想问一下各位git有没类似svn的export功能,就是导出来目录结构都在的? | 
|  |      25xiaket      2013-08-06 11:01:30 +08:00 没人提rsync? 要比较可以先dry-run一次, 确认后再跑一次. 自动增量, 自动比较文件校验值, 多省心... | 
|  |      26aggron      2013-08-06 11:01:52 +08:00 我现在的做法是,代码托管在bitbucket上(上面可以建免费的私有仓库) 每次发布版本时,本地push到bitbucket,然后SSH到VPS,hg pull, hg update代码就拿过去了。 你也可以不使用bitbucket的服务,直接在服务器上建hg/git server。 | 
|  |      27chchwy      2013-08-06 11:22:54 +08:00 @hellohacker { 但是我发现,有时候修改的文件多了,再去找到底修改了哪些文件,是一件非常头疼的事情。 } 用了git,隨時知道源碼何時何地何處有修改,各修改版之間的差異,全都一清二楚。 你要做的就是在服務器上開個git/svn版本庫,然後開始學著用。本地端改完了就將變更推送進版本庫,服務器上再從版本庫更新源碼。 | 
|  |      28shierji      2013-08-06 12:18:14 +08:00 亲。git欢迎你…… | 
|  |      29nsa      2013-08-06 12:22:38 +08:00 deploy, production, rsync, git | 
|  |      30terry      2013-08-06 12:47:53 +08:00 rsync over SSH, sshfs, NFS, btsync, continous integration 工具直接从 Git Repo 中 checkout 部署,很多不同的做法。 | 
|  |      31undeadking      2013-08-06 12:53:34 +08:00 我负责的一个项目是服务器在客户那,我只有ftp的权限,无法在服务器上部署任何软件.于是只能用git diff --name-only 来查看修改过什么文件,然后再逐个上传. 其他项目都是直接push到代码库,然后在服务器上执行pull @buru git archive -o update.zip HEAD $(git diff --name-only HEAD^) 原贴见 http://ruby-china.org/topics/5312 | 
|  |      32Nerrsoft      2013-08-06 13:14:30 +08:00 git 不二选择 | 
|  |      33revlis7      2013-08-06 14:08:41 +08:00 @undeadking 对于只能使用FTP的情况,我又要忍不住推荐BeyondCompare了,可通过FTP、SFTP比较本地和远程的文件,哪些文件被修改过一目了然。 | 
|  |      34jevonszmx      2013-08-06 14:11:07 +08:00 最简单的方法不是版本控制+rsync嘛? 公司是svn+rsync同步8台web服务器,毫无压力。 楼主看来对版本控制毫无概念。。。 | 
|      35mengzhuo      2013-08-06 14:45:39 +08:00 git + fabric + rsync + alias yoyo~ | 
|  |      37gxxa36d      2013-08-06 15:01:09 +08:00 版本控制 | 
|      38lordong      2013-08-06 15:50:51 +08:00 竟然没人提到dropbox? | 
|  |      39jpuyy      2013-08-06 16:17:22 +08:00 你可外包给ls任何一位,问题解决。 | 
|  |      40DoubleH      2013-08-06 16:48:17 +08:00 Git真的就这么NB? | 
|  |      43BQY2D0AgLxq4jzdr      2013-08-06 17:46:50 +08:00 其实,楼主可以通过文件修改时间这个属性来判断,多简单。 | 
|  |      44hustlzp      2013-08-06 19:18:01 +08:00 git push fab deploy:(1)cd /path/to/your/project/ (2)git pull(3)restart app | 
|  |      45likuku      2013-08-07 00:50:05 +08:00  1 @hellohacker 「git 和svn这些我了解过 但是这些不都也要提交吗。能否给我个详细的方案」 是的,一样要提交,但是以前你是改好就直接“提交”到线上服务器,无数次提交完全无迹可循,假若自己每次修改文件都另存一份新副本,则很快文件也凌乱到头昏脑胀了。 git 和 svn 都能让你修改和提交后有机会追踪代码进化历史,并且随时可以取出/比对 任意提交过的版本。 | 
|  |      46imzoke      2013-08-07 01:52:35 +08:00 | 
|      47xdyl      2013-08-07 06:42:10 +08:00 1.楼主不是开发人员 2.不是开发人员需要频繁更改源码来发布? 3.推荐你需要的不是一个Git/Svn.而是一次代码上的重构.给你一个CMS的后台 | 
|  |      48lerry      2013-08-07 09:12:35 +08:00 via Android GoodSync不错,我用来同步手机音乐和备份文件 | 
|  |      49williamx      2013-08-07 10:05:57 +08:00 @felix021 我很不赞同你的这种说法。一个工具针对不同的case有不同的用法。只提git,而不支持具体的方法,对提问者来说,没有实际的帮助。你当然可以就这样认为你已经“给了足够的帮助”,但我还是希望其他人可以更nice一些。 | 
|  |      50felix021      2013-08-07 10:10:51 +08:00 @williamx 见仁见智。LZ所说的问题“有时候修改的文件多了,再去找到底修改了哪些文件,是一件非常头疼的事情”,如果他真的“了解”过git/svn,用过哪怕只有一次"git/svn status",这就不会是问题,特别是,这个是最基础的命令之一。 | 
|  |      51icanfork      2013-08-07 10:12:22 +08:00 @humiaozuzu 我没有用过自动化部署,起码还会版本管理。。。擦,突然感觉自己也挺好。 | 
|  |      52williamx      2013-08-07 10:23:14 +08:00 @felix021 嗯,真是看出了他对git没有很好的了解,才觉得更需要清晰明确的指导。毕竟对一个新手来说,git并不是那么简单。而git status找出了文件后,如果没有配套的命令/工具来收集这些文件,人工一个一个去处理,还是非常麻烦的一件事情,当然这就和他的具体如何用这些文件有关了,而他也没有说清楚。 | 
|  |      53felix021      2013-08-07 15:14:38 +08:00 @williamx 一个更清晰明确的指导不一定是好事,也许这次是你帮到了他,但是下次呢?我不知道你有没看过《提问的智慧》 (推荐 @hellohacker 看看),我一直是以这里的标准来要求自己和别人。好的问题才值得好的回答;而显然“能否给我个详细的方案”不是个好问题。 | 
|  |      54wwqgtxx      2013-08-07 17:39:11 +08:00 via Android |