实现 win 本地和远程 Linux 下 git 控制的文件同步

2017-03-24 10:37:21 +08:00
 jiangbingo

本地可以通过 ssh 用户名和密码连接远程服务器,使用什么方式可以同步本地和对应的远程文件( git 版本控制的 Python 项目),使用过 pycharm 的 deployment 功能,但 win 和远程的 linux 文件同步会影响 git 控制(即被修改的文件被git识别为整个文件被修改)。

ps : 本地 win 环境,远程服务器是 Linux 环境。

4217 次点击
所在节点    Python
25 条回复
ecosky
2017-03-24 10:42:20 +08:00
fabric ,可以研究下。
jiangbingo
2017-03-24 10:42:25 +08:00
pycharm 的 deployment 功能不知大家有没有使用过?
jiangbingo
2017-03-24 10:48:52 +08:00
@ecosky 最主要的问题是 git 版本控制,现在是使用终端 SSH 连接到远程 VM ,然后在终端上使用 VIM 编辑 python 项目文件太费力( VIM 使用不熟练),如果在本地 win 环境编辑文件上传到 VM ,会影响整个文件的 Git 版本管理。也许我还是在本地安装 linux 系统比较好。。。
codingyue
2017-03-24 10:52:08 +08:00
sshfs ,挂载远程文件到本地 windows 。
wudanyang
2017-03-24 10:54:25 +08:00
难道不是建个分支?
besto
2017-03-24 10:58:35 +08:00
@jiangbingo 在 windows 下用 git 注意两点: 1 ,是把权限变成 0755 ,其实问题不大, 2 ,是上传的时候注意回车换行的问题。(可以选)

另外就是自动缩进的问题。
jarlyyn
2017-03-24 10:59:59 +08:00
都没有明白你的问题。

要修改远程的文件,用 filezilla 或者挂载为文件夹

要本地有一整套环境,同步运行测试,用 Rsync

正常开发,用代码版本控制。
SpicyCat
2017-03-24 11:00:10 +08:00
主要原因是 win 和 Linux 的换行符不同, Win 是 CRLF, Linux 是 LF 。你在本地修改完文件,上传到 Linux 服务器,再用 dos2unix 转换一下就行了。
likuku
2017-03-24 11:03:42 +08:00
win 下直接用 git 不允许么? git 只要有 ssh 就可以用的嘛。
likuku
2017-03-24 11:05:29 +08:00
@SpicyCat win 下用的编辑器设定下格式用 LF 就行。

现代化编辑器 (Atom,sublime,等)可以自动识别当前文件换行方式,可以设定为保持现有文件换行方式。
likuku
2017-03-24 11:06:37 +08:00
@besto 自动缩进...又是 tab 和 space 的圣战了..现代化编辑器,推荐用 soft tab 绑定为 4 space.
pubby
2017-03-24 11:11:16 +08:00
phpstorm 一直用 deployment 功能实时同步文件到测试机, jb 系的 ide 应该都可以。

Deployment / Configurations 增加一个 server , sftp 模式,用你的 ssh 上好连接到你的测试机,设好路径之类的
Deployment / Options 里面设置一下,大部分都可以勾上,我选的是 "Upload changed files automatically to the default server : Always"

然后在自己电脑的 phpstorm 上开发,测试机上测试就行了,文件都会自动同步上去。
git 用 phpstorm 内集成的
pubby
2017-03-24 11:12:27 +08:00
/ssh 上好 /ssh 账号 /
pubby
2017-03-24 11:15:56 +08:00
至于说测试机上 git 控制受影响,出问题你直接在测试机上丢弃那些文件的修改,重新 pull 一下好了
wenning
2017-03-24 12:13:26 +08:00
pycharm 里面设置 line separator, windows 的 git 也设置下,这样同步过去就没有问题了。
只不过还是推荐是用 vagrant 虚拟机,或者直接上 linux
xuboying
2017-03-24 12:28:44 +08:00
如果你可以在 win 上跑 Linux 虚拟机的话,可以试试这个
https://github.com/xuboying/mysync

虚拟机里的 pycharm 性能也是很快的
cy18
2017-03-24 12:37:56 +08:00
git push 有什么问题?
ncisoft
2017-03-24 12:57:32 +08:00
realsync 炒鸡好用,直接通过 ssh 同步文件夹, 1 、指同步变化的文件夹; 2 、自动记忆 ssh 帐号密码; 3 、可设定排除项,.git 默认不同步; 4 、只同步变化的文件,通过类似 inotify 技术做监控; 5 、实效性很棒; 6 、 win /linux 多平台支持
r0okit
2017-03-24 13:04:35 +08:00
我工作中就是 windows 上 pycharm Deployment 到 linux 测试机上,需要代码同步的时候 到测试机上 git reset --hard ,git clean --df , git pull xx/xx 这样就没有代码覆盖问题了
jiangbingo
2017-03-24 15:36:43 +08:00
@r0okit got it!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/349943

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX