本地非Git管理代码如何与开源仓库同步并保留自定义修改?
操作步骤
下面是具体的Git操作流程,帮你整合历史修改并同步原仓库更新:
Fork原仓库到你的账号
在代码托管平台(GitHub/GitLab等)找到原开源库的仓库页面,点击Fork按钮,将仓库复制到你自己的账号下。克隆你的Fork到本地
在本地终端执行命令,把自己的fork仓库克隆到本地:git clone https://你的账号地址/原仓库名.git cd 原仓库名添加原仓库为上游远程仓库
配置后可随时拉取原仓库的最新更新:git remote add upstream https://原仓库的官方地址.git # 验证远程仓库配置,会看到origin(你的fork)和upstream(原仓库) git remote -v创建并切换到保存你历史修改的分支
基于原仓库主分支创建新分支,单独存放你的历史修改:git checkout -b my-history-changes导入你的历史修改
把当年修改过的所有文件(包括新增文件)复制到本地仓库目录下,覆盖原文件(注意不要改动.git文件夹)。提交你的历史修改
将所有修改加入Git暂存区并提交:git add . git commit -m "Integrate my historical custom modifications"同步原仓库的最新更新到本地主分支
切换回主分支,拉取原仓库的最新代码:git checkout main # 若原仓库主分支是master,替换为master git pull upstream main合并你的历史修改到同步后的主分支
在主分支上合并修改分支,手动处理冲突:git merge my-history-changesGit会提示冲突文件,打开这些文件后,同时保留原仓库更新和你的修改内容,解决完冲突后执行:
git add . git commit -m "Merge my historical changes with upstream updates"推送分支到你的Fork仓库
将同步并整合好的主分支,以及修改分支推送到自己的fork:git push origin main git push origin my-history-changes
完成后,你的Fork仓库里会有两个关键分支:
main:与原仓库主分支同步,且整合了你的所有历史修改my-history-changes:单独存放你的历史修改,方便后续对比或调整
之后若原仓库有新更新,重复步骤7拉取上游更新,再合并到你的分支即可。
内容的提问来源于stack exchange,提问作者Brad Van Sickle
相关产品推荐
相关产品推荐

