同步本地数据到服务器上
rsync 同步
windows 下使用 cwRsync
这个 cwRsync 里面也是用的rsync, 是由 cygwin 编译的, 在使用这个rsync 的时候如果ssh 用的是别的平台编译的( 如 git-base 里自带的 ssh ) 就会有问题,
windows 使用cwRsync 有很多问题, 但是由于rsync 是增量同步的, 目前还没有找到其他好用的工具, 也就只能再忍忍了
示例:
|
|
-
😠 注意
- 要用 -e 参数来指定 ssh 的路径 和 ssh 的私钥 ( 这个私钥对应的公钥应该已经添加到服务器的 .ssh/authorized_keys 里了)
- 源目录 ( 示例中的 public\ ) 不能使用绝对路径, 无论你的路径是 /cygdrive/c/xxx 这种标准的cygwin 的路径还是 “E:\\xxx” 这种windows 的标准路径
- 源目录后面要跟一个反斜杠\ 不然传输过程中会出问题, 导致一些莫名其妙的问题, 如目标目录的权限被莫名更改, 导致文件传不完等
- –exclude 后面的参数不能太具体, 如果是
--exclude="public/.git/*"
就会有问题
git 同步 (git init –bare)
服务器上的操作
- 在服务器上安装 git
- 在服务器上新建一个空的仓库
1 2
cd ~/ git init --bare blog_srv.git
里面什么也没有, 包括远程通过 git push 过来之后看到的还是这些, 只不过数据都藏在 objects 里了, 只有用 git pull 出来才看得到 - 等本地push 完之后
- 首次下载仓库数据
1 2
cd ~/ git clone blog_srv.git my_blog
- 进入仓库 git pull
1 2
cd ~/my_blog/ git pull
- 首次下载仓库数据
本地的操作
- 在服务器上建好仓库后, 进入静态网站目录, 关联远程仓库, 然后把数据 push 到远程仓库
1 2 3 4 5 6
cd public git init git remote add origin wcq@IP:~/blog_srv.git git add . git commit -m "xxx" git push origin master