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

如何在Git中关联复制的文件夹,同步源文件夹的变更?

如何同步同源目录的Git变更

你要的这种“目录级fork后同步”Git本身没有原生自动机制,但可以通过手动合并策略实现,下面是两种实用方案:

方案一:用subtree合并策略同步变更

这种方法能直接把上游user1/folder1的变更合并到你的me/mywork目录,步骤如下:

  1. 先确保已添加主仓库为上游远程(如果还没加):

    git remote add upstream <主仓库的Git地址>
    
  2. 拉取上游仓库的最新代码:

    git fetch upstream
    
  3. 执行subtree合并,提取上游user1/folder1的变更:

    git merge -X subtree=user1/folder1 upstream/main --no-commit
    
  4. 将合并后的内容移动到me/mywork目录,更新Git索引:

    git mv user1/folder1/* me/mywork/
    # 若有隐藏文件,补充执行:git mv user1/folder1/.* me/mywork/
    
  5. 解决可能出现的冲突,然后提交变更:

    git add me/mywork/
    git commit -m "同步user1/folder1的最新变更到me/mywork"
    

方案二:生成补丁并应用

如果觉得subtree合并太复杂,也可以用补丁方式同步:

  1. 拉取上游最新代码后,生成user1/folder1的变更补丁:

    git diff upstream/main:user1/folder1 user1/folder1 > folder1_update.patch
    
  2. 切换到你的工作目录,应用补丁:

    cd me/mywork
    git apply ../../folder1_update.patch
    
  3. 检查文件变更,解决冲突(如果有的话),然后提交:

    git add .
    git commit -m "通过补丁同步user1/folder1的变更"
    

注意事项

  • 两种方法都需要手动触发同步,Git不会自动监测目录间的同源关系并同步。
  • 合并/应用补丁时若出现冲突,需手动修改冲突文件,标记解决后再提交。
  • 当你要把me/mywork合并回主仓库时,直接提交PR即可,主仓库合并后两个目录会共存,后续你依然可以用上述方法继续同步user1/folder1的变更到自己的目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:25:25