github上fork别人的代码之后,如何保持和原作者同步的更新

本文介绍了一种无需使用命令行即可将原作者的GitHub仓库更新同步到个人Fork的方法,通过发起反向Pull Request轻松实现代码同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在GithubFork了Lpisme主题,修复了一个小bug,然后自己提交了。

然后刚才发现作者更新主题了,尼玛,是从我这扒的,我自己还没提交到Github呢(我是从minty扒的)。

这是问题来了,怎么把作者更新的代码同步过来,我一不会命令行,二也没试过,平常只会Fork然后更新自己的。

不过凡事总有第一次嘛。

回想一下,我更新代码之后提交给作者是通过Pull Requert,如果我反向操作一下Pull Request可不可以把原作者的代码合并到自己的Github仓库中呢。我试了一下,居然可以诶,完全接触不到任何命令。

保持和原作者同步的更新的方法

1、进入你的Github发起Pull Request

2、选择Compare across fork


3、然后反向操作,base改成自己的Fork,head改成原作者的,然后Github会自动比较改过的地方让后发起Pull Request,接着在自己项目的Request页面合并一下就行了。

### GitHubFork Pull Request 的用法及区别 在 GitHub 中,Fork Pull Request 是协作开发中的两个重要概念。以下是它们的定义、用法以及主要区别: #### 1. Fork 的定义与用法 Fork 是指在 GitHub 上复制一个仓库到自己的账户中[^1]。通过点击“Fork”按钮,用户可以创建一个独立的副本,从而允许对原始仓库进行修改而不影响原作者代码。 - **用法**: - 当用户希望为一个项目贡献代码但没有权限直接修改原始仓库时,可以先 Fork 原始仓库。 - 在 Fork 后的仓库中,用户可以自由地进行更改提交。 - 最终,可以通过 Pull Request 将更改提交回原始仓库。 ```bash # 示例:Fork 操作后克隆到本地 git clone https://github.com/你的用户名/原始仓库名.git ``` #### 2. Pull Request 的定义与用法 Pull Request(简称 PR)是向原始仓库的维护者请求合并更改的一种方式[^1]。它允许开发者将自己 Fork 的仓库中的更改提交给原始仓库,并邀请维护者审查合并这些更改。 - **用法**: - 在完成对 Fork 仓库的修改后,用户可以在 GitHub 界面上发起一个 Pull Request。 - Pull Request 会显示更改的详细信息,包括新增、删除或修改的代码行。 - 维护者可以审查这些更改,并决定是否接受、拒绝或要求进一步修改。 ```bash # 示例:推送本地更改到 Fork 的远程仓库 git push origin main ``` #### 3. Fork Pull Request 的区别 以下是 Fork Pull Request 的主要区别: | 特性 | Fork | Pull Request | |-------------------|------------------------------------------|---------------------------------------------| | **目的** | 创建一个独立的仓库副本 | 请求将更改合并到原始仓库 | | **操作对象** | GitHub 上的远程仓库 | 用户 Fork 的仓库与原始仓库之间的差异 | | **执行时机** | 在开始修改代码之前 | 在完成代码修改并准备提交之后 | | **是否需要权限** | 不需要对原始仓库的写权限 | 需要原始仓库维护者的审查批准 | #### 4. 实际应用场景示例 以下是一个实际场景的示例,展示如何结合使用 Fork Pull Request[^4]: 1. **Fork 官方仓库**:用户 Fork 官方作品提交仓库至个人 GitHub 账户。 2. **Clone 到本地**:从 Fork 的仓库克隆代码到本地电脑。 3. **修改代码**:在本地仓库中添加或修改代码。 4. **提交更改**:将本地更改推送到 Fork 的远程仓库。 5. **发起 Pull Request**:在 GitHub 上发起 Pull Request,请求官方仓库维护者审查并合并代码。 #### 5. 相关命令总结 以下是常用的 Git 命令,帮助完成 Fork Pull Request 的相关操作[^3]: ```bash # 克隆 Fork 的仓库到本地 git clone https://github.com/你的用户名/原始仓库名.git # 添加上游仓库(原始仓库) git remote add upstream https://github.com/原始作者名/原始仓库名.git # 更新本地仓库与上游仓库同步 git fetch upstream git merge upstream/main # 提交更改到 Fork 的远程仓库 git push origin main ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值