为什么git无法获取我在GitHub中合并的拉取请求?

佩皮金·施密茨

我遇到了一些git麻烦。我的设置如下:

[工作站存储库] -origin-> [网络驱动器裸存储库] -origin-> [GitHub]

我刚刚在GitHub上接受了我的第一个拉取请求(请求),并将其合并为master。现在,我想将其拉到我的工作站上。因此,我先git fetch在网络驱动器上,然后git pull在我的工作站上,但是在我的工作站上,git表示“已经是最新的”,并且拒绝合并更改(我检查过,它不在我的工作空间中)。

git branch -vv网络驱动器上的输出包括以下行:

* master                    0fe40e2 [origin/master: behind 2] Some small code improvements

git branch -vv工作站存储库上的输出包括以下行:

* master         0fe40e2 [origin/master] Some small code improvements

他们应该指向的实际提交是3388641看起来在网络驱动器的裸仓库中,主分支以某种方式落后于原始服务器/主服务器。我不知道这种情况是如何产生的,或者如何解决。我不能使用,git pull或者git reset因为它是一个简单的仓库。

有谁知道我如何确定问题所在以及如何解决?

星期二

我不确定这个单独的裸克隆的用途是什么(裸克隆是您所说的那个在网络驱动器上),但是如果它不是镜像克隆,则镜像是一种特殊类型的裸克隆,它具有拥有独立于所有其他Git存储库的分支名称。1因此,如果您希望它何时将自己作为其他Git存储库的从属,则需要告诉它更新任何特定的分支。

我不能使用,git pull或者git reset因为这是一个空的仓库...

的确,您不能使用git pull,因为它是一个裸仓库,并且git pull意味着run git fetch,然后运行第二个Git命令,而第二个Git命令始终是需要工作树的命令。但是,不是不能使用的情况git reset您不能做的是混合或硬重置:

$ git reset
fatal: mixed reset is not allowed in a bare repository
$ git reset --hard
fatal: this operation must be run in a work tree

一个--soft复位,但是,允许:

$ git reset --soft
$ 

因此,移动本地master匹配项的一种方法origin/master是:

$ git reset --soft origin/master

但是,最合适的方法可能是要么完全停止使用此裸存储库,要么使用镜像克隆(请参见脚注1)。


1从技术上讲,即使镜像克隆也有其自己的分支名称。非镜像裸克隆和镜像裸克隆之间的主要区别在于,镜像克隆的所有分支名称都源自其起源。2具体来说,fetch镜像克隆配置为:

[remote "origin"]
    fetch = +refs/heads/*:refs/heads/*

而不是标准:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*

标准的获取设置意味着git fetch在这样的克隆运行会更新所有refs/remotes/origin/*名称,以匹配原始refs/heads/*名称。非标准的镜像设置意味着git fetch在镜像克隆运行会强制更新所有refs/heads/*名称,立即忘记(并因此丢失仅可从其分支访问的所有提交)其自己的分支名称,而转而使用取回的名称。这是什么使得镜子镜子:它丢弃任何提交专属自己的分支机构通过更换自己的分公司名义犯了什么它看见了遥控器上的哈希值。

2上面的描述采用标准的远程名称origin如果您使用其他名称,则所有内容仍将保留,仅是origin字符串文字而不是您使用的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Github中,我要阻止成员合并拉取请求

为什么Git无法重置以拉取请求

GitHub拉取请求与Git命令行合并

如何从github graphql查询中获取拉取请求的默认合并方法?

在Github中合并拉取请求时触发Jenkins构建

使用GitHub拉取请求的正确git配置是什么?

避免在git的拉取请求中合并提交

GitHub:重新打开合并的拉取请求

GitHub拉取请求合并已禁用

Github 操作合并特定拉取请求

GitHub无法识别回复的拉取请求中的更改

如果 CI 作业中的任何检查失败,我们如何禁用 github 中拉取请求的合并

拉取请求在GitHub Desktop中到底做了什么

合并拉取请求时,为什么需要将开发分支合并到功能分支?

GitHub:我提出的拉取请求?

GitHub:我的拉取请求的外部链接

Git 从 Azure DevOps 获取拉取请求

在GitHub操作中评论拉取请求

如何将打开的 Github 拉取请求合并到一个分支中?

在允许合并/关闭 PR 之前,如何在 github 拉取请求中要求链接问题

Github 和 Cocoapods - 安装未合并的拉取请求

如何避免使用API延迟github拉取请求合并

如何使用GitHub API从GitHub拉取请求中获取评论?

GitHub/Git:无法使用特定分支创建拉取请求(无按钮)

从Git拉取请求中删除文件

git中的合并拉取请求导致上游分支超出原点

合并拉取请求后,Git状态不显示差异

git:如何将拉取请求合并到派生?

TFS Git-拉取请求“合并失败”