实现 win 本地和远程 Linux 下 git 控制的文件同步 - V2EX
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
0.01D
V2EX    Python

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

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

    本地可以通过 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     Solana     929 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 21:38 PVG 05:38 LAX 14:38 JFK 17:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86