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

如何在R项目中从GitHub代码切换到本地未提交修改代码调试

调试本地修改的R包代码(无需每次提交GitHub)

步骤1:克隆目标仓库到本地并切换指定Commit

先将你之前安装的特定版本仓库克隆到本地,同时切换到对应commit:

# 克隆仓库
git clone https://github.com/OHDSI/ETL-Synthea.git
# 进入本地仓库目录
setwd("ETL-Synthea")
# 切换到目标commit版本
git checkout bae1c8eca8dba7ba1129f6c5f758b985c5458405

步骤2:用devtools加载本地包替代线上安装版

在RStudio中进入本地仓库目录后,使用devtools::load_all()加载本地包,R会优先调用你本地修改的代码,而非之前通过install_github安装的线上版本:

# 确保当前工作目录是本地仓库路径
setwd("path/to/your/local/ETL-Synthea")
# 加载本地包
devtools::load_all()

步骤3:直接调试本地函数

现在可以直接调试本地版本的目标函数,无需额外包装:

# 开启函数调试
debug(ETLSyntheaBuilder::LoadEventTables)
# 调用函数开始调试
ETLSyntheaBuilder::LoadEventTables(connectionDetails = cd, cdmSchema = cdmSchema, syntheaSchema = syntheaSchema, cdmVersion = cdmVersion, syntheaVersion = syntheaVersion)

步骤4:修改代码后快速重载

每次修改本地R文件后,重新运行devtools::load_all()即可加载最新改动,直接再次调用函数调试,全程无需提交到GitHub。

减少原文件改动的技巧

  • 临时测试修改:如果只是临时调试不想修改原文件,可以在控制台临时重写函数,仅当前会话生效,不会污染本地仓库文件:
    # 临时覆盖原函数逻辑
    LoadEventTables <- function(connectionDetails, cdmSchema, syntheaSchema, cdmVersion, syntheaVersion) {
      # 在这里写入你的调试修改代码
      # 保留原函数核心逻辑+新增调试内容
    }
    # 调试临时函数
    debug(LoadEventTables)
    LoadEventTables(connectionDetails = cd, cdmSchema = cdmSchema, syntheaSchema = syntheaSchema, cdmVersion = cdmVersion, syntheaVersion = syntheaVersion)
    
  • 需保留的修改:直接修改本地仓库对应R文件,用load_all()重载即可,后续提交时仅需提交实际修改的文件,无需改动调用代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:12:48