如何修复 git 和 github 中分离的 origin/main

问题描述 投票:0回答:1

我对 Git 和 Github 相当陌生,一直在从事一个编程项目,向 Github 提交和推送更改。我正在一个名为“Branch_ndimage.grey_looking”的分支工作

在学习了新的方法和工具之后,我发现我的 origin/main 和 origin/head 仍然处于初始提交中,基本上是空的。这就是图在 SourceTree 中的样子:

SourceTree graph

我尝试将最新提交合并到第一个提交,但收到了我理解的错误“致命:拒绝合并不相关的历史记录”。

我尝试在初始提交和最后一次提交之后重新设置第一个提交的基准,但是尽管我将本地 HEAD 放在图表上的最高位置,但 origin/main 和 origin/head 仍然指向初始提交并且未连接。我需要将其推送到 Github 吗?

如何让我的分支的最新提交再次成为主分支,并且 HEAD 点也位于 Github 存储库中?我不确定,如果我尝试的话,我担心我会把 Github 仓库搞得无法修复。我可以使用命令行 Git 和 SourceTree 来解决这个问题。

git github atlassian-sourcetree
1个回答
0
投票

首先,解释其中一些标签的含义:

  • “origin”是“远程”的名称 - git 术语,意思是“可以推送和拉取的另一个 git 副本”;在本例中,是您在 GitHub 上的存储库
  • “origin/master”表示“GitHub 上名为‘master’的分支的本地缓存”
  • “origin/HEAD”从技术上讲是“GitHub 已签出的修订版(的本地缓存)”;实际上,它标记了 GitHub 所称的存储库的“默认分支”

因此,查看该屏幕截图,我们可以看到:

  • 您的 GitHub 存储库有一个名为“main”的默认分支,只有一次提交。这可能是您在 GitHub 中设置存储库时自动创建的 - 如果您要求 GitHub 生成许可证、自述文件或
    .gitignore
    文件
  • ,GitHub 就会执行此操作
  • 您的 GitHub 存储库还有一个有一个名为“master”的分支。这可能是您在本地创建的,忽略服务器上默认的“main”,然后上推。

结果是“主”分支实际上与您的历史记录没有任何关系,并且可能对您没有用。要摆脱它,请登录 Github 并:

  1. 将 UI 切换到“主”分支,然后查看那里的文件。确保没有任何您想保留的东西。
  2. 在存储库的“设置”中将存储库上的默认分支更改为“master”。请参阅 此 GitHub 帮助页面了解详细说明
  3. 通过查看 GitHub 中的分支列表并单击废物箱图标来删除“主”分支。 详细删除说明在这里

然后在本地副本上运行

git fetch --prune origin
,以删除已删除分支的缓存副本。

© www.soinside.com 2019 - 2024. All rights reserved.