V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jiangbingo
V2EX  ›  Python

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

  •  
  •   jiangbingo · 2017-03-24 10:37:21 +08:00 · 4472 次点击
    这是一个创建于 2836 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    现代化编辑器 (Atom,sublime,等)可以自动识别当前文件换行方式,可以设定为保持现有文件换行方式。
    likuku
        11
    likuku  
       2017-03-24 11:06:37 +08:00
    @besto 自动缩进...又是 tab 和 space 的圣战了..现代化编辑器,推荐用 soft tab 绑定为 4 space.
    pubby
        12
    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
        13
    pubby  
       2017-03-24 11:12:27 +08:00
    /ssh 上好 /ssh 账号 /
    pubby
        14
    pubby  
       2017-03-24 11:15:56 +08:00
    至于说测试机上 git 控制受影响,出问题你直接在测试机上丢弃那些文件的修改,重新 pull 一下好了
    wenning
        15
    wenning  
       2017-03-24 12:13:26 +08:00
    pycharm 里面设置 line separator, windows 的 git 也设置下,这样同步过去就没有问题了。
    只不过还是推荐是用 vagrant 虚拟机,或者直接上 linux
    xuboying
        16
    xuboying  
       2017-03-24 12:28:44 +08:00
    如果你可以在 win 上跑 Linux 虚拟机的话,可以试试这个
    https://github.com/xuboying/mysync

    虚拟机里的 pycharm 性能也是很快的
    cy18
        17
    cy18  
       2017-03-24 12:37:56 +08:00
    git push 有什么问题?
    ncisoft
        18
    ncisoft  
       2017-03-24 12:57:32 +08:00 via Android
    realsync 炒鸡好用,直接通过 ssh 同步文件夹, 1 、指同步变化的文件夹; 2 、自动记忆 ssh 帐号密码; 3 、可设定排除项,.git 默认不同步; 4 、只同步变化的文件,通过类似 inotify 技术做监控; 5 、实效性很棒; 6 、 win /linux 多平台支持
    r0okit
        19
    r0okit  
       2017-03-24 13:04:35 +08:00
    我工作中就是 windows 上 pycharm Deployment 到 linux 测试机上,需要代码同步的时候 到测试机上 git reset --hard ,git clean --df , git pull xx/xx 这样就没有代码覆盖问题了
    jiangbingo
        20
    jiangbingo  
    OP
       2017-03-24 15:36:43 +08:00
    @r0okit got it!!
    jiangbingo
        21
    jiangbingo  
    OP
       2017-03-24 15:41:17 +08:00
    PS :为啥要分开修改和提交代码呢,因为公司有防火墙,远程 Linux 只有命令行, win 上 make 等操作执行不了。
    jiangbingo
        22
    jiangbingo  
    OP
       2017-03-24 15:41:44 +08:00
    @besto 感谢,我先试试
    jiangbingo
        23
    jiangbingo  
    OP
       2017-03-24 15:44:35 +08:00
    感谢诸位。
    jiangbingo
        24
    jiangbingo  
    OP
       2017-03-24 16:59:02 +08:00
    @r0okit git pull xx/xx 这一步是从哪儿 pull 的代码?
    jiangbingo
        25
    jiangbingo  
    OP
       2017-03-31 15:33:45 +08:00
    Pycharm 在 win 上如何默认设置为 unix 下的 LF ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2840 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:48 · PVG 16:48 · LAX 00:48 · JFK 03:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.