You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在本地仓库间使用Git或等效方案实现代码同步?

本地代码同步方案:Git 或 rsync 实现需求

一、用本地Git实现同步(支持.gitignore规则)

你可以利用Git的文件跟踪机制和.gitignore规则完成同步,步骤如下:

  1. 初始化Dev目录为Git仓库:
    进入Dev目录执行:
    cd ~/dev/remote
    git init
    
  2. 配置忽略规则:
    在Dev目录创建.gitignore文件,写入需要排除的内容:
    # 忽略backups目录
    backups/
    # 忽略所有点文件
    .*
    
  3. 提交初始版本:
    将需要同步的文件加入Git跟踪:
    git add .
    git commit -m "初始提交"
    
  4. 同步到Localhost目录:
    每次修改代码并提交后,执行以下命令将Git跟踪的文件导出到Localhost:
    git archive HEAD | tar -x -C /var/www/html
    
    该命令会自动排除.gitignore里的内容,将仓库中所有已跟踪文件覆盖到目标目录。如果需要增量更新,也可以结合git ls-files和rsync,只同步已跟踪文件:
    git ls-files | rsync -av --files-from=- ~/dev/remote/ /var/www/html/
    

二、用rsync实现更高效的增量同步(推荐)

rsync是专门的文件同步工具,支持类似.gitignore的排除/包含规则,增量同步效率比cp -ur更高:

  1. 配置同步规则:
    创建规则文件(比如~/.sync_rules),写入排除规则:
    # 排除backups目录
    backups/
    # 排除所有点文件
    .*
    
    如果想用白名单(比如只同步.php和.css),规则写成:
    # 先包含所有目录,确保rsync能进入子目录
    + */
    # 包含指定文件类型
    + *.php
    + *.css
    # 排除其他所有内容
    - *
    
  2. 执行同步命令:
    • 用排除规则同步:
      rsync -av --exclude-from='~/.sync_rules' ~/dev/remote/ /var/www/html/
      
    • 用白名单规则同步:
      rsync -av --include-from='~/.sync_rules' ~/dev/remote/ /var/www/html/
      
    参数说明:
    • -a:归档模式,保留文件权限、修改时间等属性,递归同步子目录
    • -v:显示同步详情(可选,方便排查问题)
    • --exclude-from/--include-from:指定规则文件,规则格式和.gitignore兼容
  3. 简化操作:
    把同步命令做成Shell别名,比如在~/.bashrc或~/.zshrc中添加:
    alias sync-dev="rsync -av --exclude-from='~/.sync_rules' ~/dev/remote/ /var/www/html/"
    
    之后直接输入sync-dev就能完成同步。

总结

  • 如果已经习惯Git工作流,用Git结合归档/rsync的方式可以直接复用.gitignore规则;
  • 如果更关注同步效率和操作简洁性,rsync是更合适的选择,无需Git提交步骤,直接实现增量同步和规则过滤。

内容的提问来源于stack exchange,提问作者John P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 07:44:58