当前位置: 首页 > news >正文

fork仓库的代码如何同步主仓库代码

1.背景

我fork了一份 jekyll-theme-chirpy 仓库的代码(基于 jekyll 的自建博客仓库,可以免服务器),我需要在上面更新我的博客文章,但是我又想一直同步 jekyll-theme-chirpy 仓库的新功能,这样我可以更新自己的博客功能。所以我就需要定期同步 jekyll-theme-chirpy 仓库的代码。

2.方法一:删除旧的fork仓库,重新fork,将需要的代码拷贝进新fork的仓库

这种办法太繁琐,且容易出错,一般不推荐使用,除非你不怕麻烦

  • 进入fork仓库,点击 tab 页的Settings,将页面滑到最底下,找到 Delete this repository 按钮,点击它进行删除仓库
  • 重新 fork 原始仓库,并 clone 到你的本地
  • 将需要的代码拷贝进新的fork仓库
  • 提交commit,将fork仓库推送至github

3.方法二:merge原始仓库代码

3.1.进入本地fork仓库,执行git remote -v查看远程仓库路径

git remote -v
# origin  git@github.com:rookie-luochao/rookie-luochao.github.io.git (fetch)
# origin  git@github.com:rookie-luochao/rookie-luochao.github.io.git (push)

执行git remote -v显示只有名为 origin 的两行路径,说明你未设置upstream(上游代码库)

3.2.设置upstream

使用git remote add upstream将原始仓库设置为fork仓库的upstream,然后在执行git remote -v查看

git remote add upstream git@github.com:cotes2020/jekyll-theme-chirpy.gitgit remote -v
# origin  git@github.com:rookie-luochao/rookie-luochao.github.io.git (fetch)
# origin  git@github.com:rookie-luochao/rookie-luochao.github.io.git (push)
# upstream        git@github.com:cotes2020/jekyll-theme-chirpy.git (fetch)
# upstream        git@github.com:cotes2020/jekyll-theme-chirpy.git (push)

执行git remote -v显示多了名为 upstream 的两行路径,说明已经设置好upstream

3.3.检查本地改动信息

执行git status检查本地是否有改动信息,如果有改动信息,请提交commit

3.4.拉取 upstream 代码

建议fork仓库将所有改动都合并到 master 分支,然后再去同步 upstream 的 master 分支代码
执行以下命令拉取 upstream 代码

git fetch upstream
# 处理 delta 中: 100% (69/69), 完成 33 个本地对象.
# 来自 github.com:cotes2020/jekyll-theme-chirpy

3.5.合并 upstream 代码

执行以下命令合并 upstream 代码,如果有冲突,请解决冲突后再commit一次

git merge upstream/master# 如果有代码冲突,请解决冲突后执行以下命令进行合并
git add .
git commit -m "fix: fix conflict"
一般情况下合并 upstream 代码肯定会有冲突,所以建议不要使用git pull --rebase upstream/master命令,因为解决冲突后使用git log查看 commit 记录会很奇怪

3.6.推送合并后的代码至远程仓库

执行以下命令将代码推送至远程仓库

git push
参考链接:the-craft-of-selfteaching/issues/67
http://www.lryc.cn/news/179877.html

相关文章:

  • 【Axure】元件库和母版、常见的原型规范、静态原型页面制作
  • 在设备树中描述中断
  • ccf_csp第一题汇总
  • uniapp 实现下拉筛选框 二次开发定制
  • 实现单行/多行文本溢出
  • Spring Boot中的Binder类
  • leetcode之打家劫舍
  • 走进Spring的世界 —— Spring底层核心原理解析(一)
  • 快看看你的手机有没有:谷歌Android全面封杀此类软件!
  • spark ui 指南
  • 【分布式事务】
  • linux 清除卸载jenkins
  • 番外4:VMware安装
  • Oracle 19.20 patch 注意事项
  • ElementUI之增删改及表单验证
  • 【Java 进阶篇】深入理解 JDBC:Java 数据库连接详解
  • Web开发-session介绍
  • 基于Qt Creator开发的坦克大战小游戏
  • 小说推文和短剧推广以及电影达人带货电影票
  • 朴素贝叶斯分类(下):数据挖掘十大算法之一
  • 9.30作业
  • [GWCTF 2019]枯燥的抽奖
  • vue3中sync修饰符的使用
  • Qt全屏显示与退出
  • OpenCV之直线曲线拟合
  • 2023年哪款PDF虚拟打印机好用?
  • Redis各数据类型特定的命令和用法 1.0版本
  • 卫星图像应用 - 洪水检测 使用DALI进行数据预处理
  • 为什么字节大量用GO而不是Java?
  • Hive SQL初级练习(30题)