【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件

2024-04-25 20:20

本文主要是介绍【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件

  • 写在最前面
  • 原因解析
    • 提交pr,pr是什么?
    • rebase 或者 merge 命令
  • 找到分支中被删除的文件
    • 找到被关闭的提交请求pr
      • 方法1:在公共仓库被关闭的pr中大海捞针
      • 方法2:在请求申请中点击Compare对比
    • 在Comparing changes中
      • 可以看到有改变的地方
      • 可以查看改变的文件
    • 所删除文件所在地址


请添加图片描述

🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

写在最前面

尝试用自己的方法理解,并初步解决了该问题。路过大佬如如果了解这个问题,还请多多指教!

先fork主仓库A,到我自己的仓库B。然后一段时间后,仓库B新增更新b,同时关于b的pr请求没有被合并。在此期间,仓库A更新了很多其他内容。在仓库B点击sync fork后,为什么会关闭之前提交分支的pr申请?

在这里插入图片描述

找不到原来的源文件了。

在这里插入图片描述

参考:github官方文档:同步复刻

在这里插入图片描述

历史相关文章:【GitHub主页】优化简历

原因解析

当您点击 “Sync Fork” 同步您的 fork 时,GitHub 会将原始仓库(这里是仓库 A)的最新更改拉取到您的 fork(仓库 B)中。这个操作实际上是在您的 fork 中创建一个新的本地分支,该分支与原始仓库的主分支(通常是 mainmaster)保持同步。

如果您的 Pull Request 基于一个之前提交的分支,而该分支在您点击 “Sync Fork” 之后被删除或者重写了(即通过新的提交覆盖了之前的提交),那么与该分支相关的 Pull Request 会被关闭。这是因为 GitHub 认为您的分支已经不再存在,所以相应的 Pull Request 也不再适用。

解决这个问题的方法之一是在您点击 “Sync Fork” 之前,确保您的 Pull Request 基于的分支在原始仓库中仍然存在,并且没有被更新或删除。如果分支已被更新,您可以将您的本地分支重新基于原始仓库的最新状态,然后再次提交 Pull Request。

如果您对自己的 fork 进行了一些重要的更改,但是又想保持与原始仓库的同步,您可以考虑使用 Git 的 rebase 或者 merge 命令来将原始仓库的更改合并到您的分支中,而不是直接点击 “Sync Fork”。这样可以更好地控制您的分支和提交历史。

提交pr,pr是什么?

PR 是 Pull Request(拉取请求)的缩写。Pull Request 是一种在开源项目中进行协作的方式。当您 fork 一个仓库并在其基础上进行更改后,您可以向原始仓库的所有者发送 Pull Request,请求他们将您所做的更改合并到他们的仓库中。

通常,Pull Request 包含以下信息:

  1. 基础(Base)分支:您希望将更改合并到的目标分支。通常是原始仓库的主分支,比如 mainmaster 分支。

  2. 对比(Compare)分支:包含您所做更改的分支。通常是您 fork 出的仓库中的一个分支,您可能已经在该分支上进行了一些更改。

  3. 标题和描述:Pull Request 的标题是对所做更改的简要描述,而描述则是对更改的详细说明,可以包括更改的目的、解决的问题、所做的修改等信息。

  4. 相关问题和标签:您可以将 Pull Request 与仓库的问题(issue)相关联,以便更好地跟踪工作进度。您还可以为 Pull Request 添加标签,以便更容易地对其进行分类和筛选。

一旦您提交了 Pull Request,仓库的维护者可以审查您所做的更改,并提供反馈或者接受并合并您的更改。这种方式使得多人协作开发变得更加简单和透明。

rebase 或者 merge 命令

当您想将原始仓库的更新合并到您的分支时,您可以使用 git rebase 或者 git merge 命令。

  1. 使用 git rebase 命令
git checkout your_branch  # 切换到您的分支
git fetch upstream  # 拉取原始仓库的更新
git rebase upstream/main  # 将原始仓库的 main 分支上的更新 rebase 到您的分支上

这会将原始仓库的更新添加到您的分支上,并在您的提交历史中按照更新的顺序重新排序。请注意,使用 git rebase 会改写您的提交历史,因此请在确认您的更改不会影响其他人的工作之后再使用此命令。

  1. 使用 git merge 命令
git checkout your_branch  # 切换到您的分支
git fetch upstream  # 拉取原始仓库的更新
git merge upstream/main  # 将原始仓库的 main 分支上的更新合并到您的分支上

这会在您的分支上创建一个新的合并提交,将原始仓库的更新合并到您的分支上。与 git rebase 不同,git merge 会保留原始的提交历史。

在这两种情况下,upstream 是原始仓库的别名,您需要将其替换为原始仓库的实际 URL 或者名称。

执行完上述命令后,您可以将您的分支推送到您的 fork 中:

git push origin your_branch  # 推送您的分支到您的 fork 中

这样就可以将原始仓库的更新合并到您的分支中,而不会影响您之前提交的 Pull Request。

找到分支中被删除的文件

找到被关闭的提交请求pr

方法1:在公共仓库被关闭的pr中大海捞针

在这里插入图片描述

方法2:在请求申请中点击Compare对比

在这里插入图片描述

在Comparing changes中

可以看到有改变的地方

https://github.com/PaddlePaddle/community/compare/b946e34e4836b8cc72f61ff3ea4fbdb622ba8b2d…30a86d3fe24b1bcf465f5186ddfd00ef135c351b?diff=unified&w=#diff-9ef9299f5418b9be474550ff88e351c9ded72d153344825bf4b2074537d74572

换到Unified后,可以更清晰的看到改变的文件

在这里插入图片描述

红色是被删除的,绿色是新增的

在这里插入图片描述

可以查看改变的文件

选择点击chaged files,可以查看改变的文件

在这里插入图片描述

在改变的文件中,可以看到分辨:新增】合并】删除

在这里插入图片描述
在这里插入图片描述

所删除文件所在地址

https://github.com/PaddlePaddle/community/blob/b946e34e4836b8cc72f61ff3ea4fbdb622ba8b2d/rfcs/Article/(文章名)

这里可以下载被误删的源文件

在这里插入图片描述


欢迎大家添加好友,持续发放粉丝福利!

这篇关于【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935695

相关文章

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

golang 对象池sync.Pool的实现

《golang对象池sync.Pool的实现》:本文主要介绍golang对象池sync.Pool的实现,用于缓存和复用临时对象,以减少内存分配和垃圾回收的压力,下面就来介绍一下,感兴趣的可以了解... 目录sync.Pool的用法原理sync.Pool 的使用示例sync.Pool 的使用场景注意sync.

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

MySQL中的两阶段提交详解(2PC)

《MySQL中的两阶段提交详解(2PC)》:本文主要介绍MySQL中的两阶段提交(2PC),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录引言两阶段提交过程sync_binlog配置innodb_flush_log_at_trx_commit配置总结引言在Inn

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置