清理一个fork并从上游重新启动它

2023-12-06

我分叉了一个存储库,然后做了一些更改,看起来我已经搞砸了一切。

我希望从头开始,使用当前的上游/主控作为我工作的基础。
我应该重新设置我的存储库还是完全删除它?


最简单的解决方案是(使用 'upstream'作为引用原始存储库分叉的远程名称):

git remote add upstream /url/to/original/repo
git fetch upstream
git checkout master
git reset --hard upstream/master  
git push origin master --force 

(类似于这个GitHub 页面,“如果我处境不好我该怎么办?”部分)

请注意,您可能会丢失在master branch(都是本地的,因为reset --hard,而在远程端,由于push --force).

另一种选择是,如果您想保留您的提交master,在当前的基础上重播这些提交upstream/master.
将复位部分替换为git rebase upstream/master。然后你仍然需要用力推动。
也可以看看 ”如果我的处境不好,我该怎么办?"


更完整的解决方案,备份您当前的工作(以防万一)在“清理 git master 分支并将一些提交移至新分支".

也可以看看 ”将新更新从原始 GitHub 存储库提取到分叉的 GitHub 存储库“用于说明什么”upstream" is.

upstream


注意:最近的 GitHub 存储库确实保护master branch反对push --force.
所以你必须取消保护master首先(见下图),然后强推后重新保护).

enter image description here


注意:在 GitHub 上具体有现在(2019 年 2 月)用于删除已合并到上游的拉取请求的分叉存储库的快捷方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

清理一个fork并从上游重新启动它 的相关文章

  • Git 更改未显示在 VS2013 Update 2 中

    我在 VS2013 中使用 Git 我更改的文件没有显示在 VS 的 更改 窗口中 当我更改文件但在将其保存到磁盘之前 它确实会显示 但是 一旦我将文件保存到磁盘 更改就会从 更改 窗口中消失 我尝试卸载并重新安装 VS2013 但没有帮助
  • git LFS 如何比 git 更高效地跟踪和存储二进制数据?

    我知道 git LFS 导致 git 在文本文件中存储字符串 指针 然后 git LFS 下载该目标二进制文件 这样 远程 git 服务器上的 git repos 就会更小 但是 git LFS 仍然必须存储二进制文件 所以在我看来 本地存
  • 如何获取 git 手动条目?

    我下载了Git源并将其安装在非标准路径中 所有 Git 选项都有一个 h选项 但列出的文档非常简洁 并且缺少许多选项 我想要完整的文档 但找不到 当我跑步时git help log or git log help我收到以下错误 No man
  • “git push heroku master”仍然要求身份验证

    我已经执行了 heroku login 但是当我尝试推送时 仍然要求我进行身份验证 git push heroku master Username for https git heroku com
  • git:如何在多台电脑之间正确共享本地副本

    我拉了一些公共存储库 在这里和那里做了一些更改 我将它们提交给我的本地副本 我经常从远程获取公共存储库中的更改 有时 我会处理来自不同 PC 的本地副本 并且需要在 PC 之间移动整个源代码 以便它们共享完全相同的更改 有几次我搞砸了复制并
  • git fsck 结合 --lost-found 和 --unreachable

    我发现了很多有趣的帖子git fsck 所以我想对它们进行一些实验 首先我在这个问题之前阅读的资料来源 如何通过关键字在 GIT 存储库中找到无法访问的提交哈希 https stackoverflow com questions 31388
  • 如何进行永久本地提交或更改

    我已经更改了我的项目的文件 配置文件 我希望此更改仅是本地的 因此从准备提交的更改列表中消失 有什么简单的方法可以做到这一点吗 请注意 配置文件定期存储在存储库中 一种方法是 git update index assume unchange
  • Git revert 导致合并冲突

    我创建了一个虚拟 txt 文件 并在每次提交中输入一个新行 例如 dummy txt first commit second commit third commit 现在我想通过恢复第二次提交来摆脱第二行 然而 我在这个简单的实验中收到了合
  • git 远程更新和 fetch 之间的区别?

    Is git remote update相当于git fetch 是的 也不是 git remote update从所有遥控器获取 而不仅仅是一个 不看代码就知道是否remote update只是一个 shell 脚本 可能 它基本上为每个
  • Git Svn 的问题,为什么为什么我永远不能 dcommit?

    我有一个 git svn 存储库 git svn clone http myrepo myrepo 我不想在master工作 git checkout b development 黑客了一段时间 git checkout master gi
  • 在 Git 上保存 Excel 文件的版本,以便稍后手动协调差异

    我将用一个月的时间更新Excel文件 这些文件的语言不是英语 我想我也可以使用 Git 来管理我想做的事情 情况 初始提交 我有一个用其他语言编写的 Excel 文件 我必须执行一些工作并用其中的数据填充 Excel 文件 My plan
  • 将 GitHub 与另一个 Bug 跟踪器一起使用? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我参与了这个项目 Pinta http pinta project com 我们目前正在使用 GitHub 进行开发 我们都喜欢 Git 和 G
  • 通过 npm 节点自动化 Git 提交 + 版本控制 + 标记

    我一直试图得到的是 使用 npm version 来更新 package json 并创建一个标签 然后提交我的更改 通过这种方式 我将能够按版本添加标签 自动版本控制并提交信息 我遇到的问题是 当我使用 npm 版本时 它会自动执行标记
  • 变基中的传入和当前

    有一个与此类似的问题 但其范围太笼统 而且响应过于复杂 我的问题是非常准时 当从我的分行MyBranch并进行像这样的变基git rebase master并发生冲突 这是传入的变化 哪个是目前的变化 请不要关闭这个问题 将其链接到之前所说
  • 从提交历史记录中删除错误提交的大文件

    如何从提交历史记录中删除错误提交的大文件 在我删除有问题的文件之前 Git 不会再将任何提交推送到远程 此后我尝试删除它们 但它们存在于之前的提交中 Note 我在项目中不再需要大文件 On git push origin my branc
  • 在 CentOS 6.4 上将 git 升级到最新版本时遇到问题

    我有带有 git 1 7 1 的 Centos 虚拟机 我想升级到最新版本的git 但是 当我尝试使用 yum 进行升级时 它表示无需执行任何操作 并且不会升级版本 以下是 yum 命令的输出 yum install git Loaded
  • git:切换分支而不分离头

    我在 github 上有一个存储库 其中有一个主分支 master 和一个用于一些实验工作的分支 我做了一些提交并推送到实验分支 一切都很好 现在 在另一台机器上 我尝试克隆我的存储库 git clone存储库 然后切换到实验分支 git
  • 如何在 Git 中创建多个阶段

    使用 Git 时 可以按照以下方式暂存文件https githowto com staging changes https githowto com staging changes 所以通常 git add file1 git commit
  • 如何在一台电脑上拥有2个git用户?

    我想练习使用 GitHub 做拉取请求并学习如何观看git 差异不同用户之间 如何在 macOS 的终端上设置另一个用户帐户来执行此操作 如何在用户之间切换 充当第二用户有三个方面 1 GitHub账户 要以其他用户身份使用 GitHub
  • SourceTree 中通过 textconv 自定义差异

    我正在尝试比较和合并 SourceTree 中的 MySQL WorkBench 文件 为此 我创建了一个小型 shell 脚本 用于提取 mwb 文件的内容 并从其中的 XML 文件中删除一些无用的计数器 然后我将此行添加到项目根目录中的

随机推荐