Skip to content
【转载】fork一个开源仓库,然后二次开发,并能跟开源更新保持一致

在 Sourcetree 中,你可以通过添加远程仓库并与主仓库(即原始开源项目)保持同步来实现你的目标。以下是详细步骤:


步骤 1:将原始开源项目设置为远程仓库

  1. 打开 Sourcetree,选择你的项目所在的本地仓库。
  2. 点击顶部菜单中的 Repository > Repository Settings
  3. 在弹出的窗口中,切换到 Remotes 标签页。
  4. 点击 Add 按钮,添加一个新的远程仓库。
    • Remote name 中填写一个名字(通常用 upstream 来表示原始项目)。
    • URL/Path 中填写原始开源项目的仓库地址。
    • 点击 OK 保存。

步骤 2:从原始仓库拉取更新

  1. 在 Sourcetree 中,点击顶部菜单的 Fetch 按钮。
  2. 在弹出的窗口中,选择 upstream 作为来源远程仓库。
  3. 点击 Fetch 按钮,将原始仓库的最新更新拉取到本地。

步骤 3:将更新合并到你的分支

  1. 拉取完成后,在 Sourcetree 的左侧分支列表中找到原始仓库的更新(如 upstream/master 或其他分支)。
  2. 切换到你的工作分支(如 master 或你正在开发的分支)。
  3. 右键点击 upstream/master 分支(或其他更新分支),选择 Merge upstream/master into current branch
  4. 如果有冲突,Sourcetree 会提示你解决冲突;解决完冲突后继续完成合并。

步骤 4:推送到你的远程仓库

  1. 合并完成后,点击 Push 按钮,将更新后的代码推送到你的远程仓库(如 origin)。

注意事项

  • 如果原始项目的分支结构复杂,除了 master 可能还存在其他开发分支,你需要针对每个需要的分支重复上述操作。
  • 为了避免冲突,建议在开始新的开发工作前先从 upstream 拉取最新代码。
  • 如果对 upstream 仓库的提交频繁,考虑定期同步,避免一次性合并大量改动导致冲突。

这样配置后,你就可以用 Sourcetree 方便地同步原始开源项目的更新,同时保持自己项目的独立性。

SourceTree拉取其他项目代码时候出现refusing to merge unrelated histories

git pull upstream main --allow-unrelated-histories

Updated at: