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