在 Sourcetree 中,你可以通过添加远程仓库并与主仓库(即原始开源项目)保持同步来实现你的目标。以下是详细步骤:
步骤 1:将原始开源项目设置为远程仓库
- 打开 Sourcetree,选择你的项目所在的本地仓库。
- 点击顶部菜单中的 Repository > Repository Settings。
- 在弹出的窗口中,切换到 Remotes 标签页。
- 点击 Add 按钮,添加一个新的远程仓库。
- 在 Remote name 中填写一个名字(通常用
upstream
来表示原始项目)。 - 在 URL/Path 中填写原始开源项目的仓库地址。
- 点击 OK 保存。
- 在 Remote name 中填写一个名字(通常用
步骤 2:从原始仓库拉取更新
- 在 Sourcetree 中,点击顶部菜单的 Fetch 按钮。
- 在弹出的窗口中,选择 upstream 作为来源远程仓库。
- 点击 Fetch 按钮,将原始仓库的最新更新拉取到本地。
步骤 3:将更新合并到你的分支
- 拉取完成后,在 Sourcetree 的左侧分支列表中找到原始仓库的更新(如
upstream/master
或其他分支)。 - 切换到你的工作分支(如
master
或你正在开发的分支)。 - 右键点击 upstream/master 分支(或其他更新分支),选择 Merge
upstream/master
into current branch。 - 如果有冲突,Sourcetree 会提示你解决冲突;解决完冲突后继续完成合并。
步骤 4:推送到你的远程仓库
- 合并完成后,点击 Push 按钮,将更新后的代码推送到你的远程仓库(如
origin
)。
注意事项
- 如果原始项目的分支结构复杂,除了
master
可能还存在其他开发分支,你需要针对每个需要的分支重复上述操作。 - 为了避免冲突,建议在开始新的开发工作前先从
upstream
拉取最新代码。 - 如果对
upstream
仓库的提交频繁,考虑定期同步,避免一次性合并大量改动导致冲突。
这样配置后,你就可以用 Sourcetree 方便地同步原始开源项目的更新,同时保持自己项目的独立性。
SourceTree拉取其他项目代码时候出现refusing to merge unrelated histories
git pull upstream main --allow-unrelated-histories