Git工作流咨询:拉取原仓库更新并保留本地修改,选哪种方式?
正确的GitHub项目自定义与同步工作流选择
结论:必须选「复刻-克隆-分支」的方式,直接克隆原仓库的方案仅适合临时本地修改,没法长期托管自定义内容,也不方便持续同步原仓库更新。
完整操作工作流如下:
复刻原仓库到自己的GitHub账号
打开Tom的项目GitHub页面,点击右上角的「Fork」按钮,等待复刻完成后,你的账号下会生成一个和原仓库完全同步的副本。克隆自己的复刻仓库到本地
在终端执行命令:git clone https://github.com/你的GitHub用户名/项目名称.git cd 项目名称此时本地仓库默认关联的是你自己的复刻远程库(命名为
origin)。添加原仓库为「上游远程库」
为了能拉取Tom原仓库的更新,需要把原仓库设为上游:git remote add upstream https://github.com/Tom的GitHub用户名/项目名称.git可以用
git remote -v查看当前的远程库列表,确认upstream已添加。创建专属开发分支做自定义修改
不要直接在main(或master)分支上修改,创建自己的开发分支:git checkout -b my-custom-features之后所有的自定义代码都在这个分支上提交。
提交并推送自定义修改
完成修改后,提交并推送到自己的复刻仓库:git add . git commit -m "完成XX自定义功能开发" git push origin my-custom-features定期同步原仓库的更新
当Tom的原仓库有更新时,按以下步骤同步到自己的分支:- 切换到本地
main分支:git checkout main - 拉取原仓库的最新代码:
git pull upstream main - 切换回自己的开发分支,合并
main分支的更新:git checkout my-custom-features git merge main - 如果出现冲突,手动解决冲突后提交,再推送到自己的远程库:
git add . git commit -m "合并原仓库最新更新" git push origin my-custom-features
- 切换到本地
为什么不选「直接克隆-分支」?
直接克隆原仓库的话,你只能在本地创建分支修改,但没有权限把自己的分支推送到Tom的原仓库,所有修改只能存在本地,没法在GitHub上备份和管理。而且后续同步原仓库更新时,操作逻辑和复刻方案类似,但缺少自己的远程仓库做中转,长期维护起来非常麻烦。
内容的提问来源于stack exchange,提问作者QQTT
相关产品推荐
相关产品推荐

