gpt4 book ai didi

git - 在 git 中检查远程分支时遇到问题

转载 作者:行者123 更新时间:2023-12-05 03:07:23 28 4
gpt4 key购买 nike

我目前在使用 git fetch 时遇到问题; git checkout branch-name 用于检查 git 中的远程分支。我收到错误 fatal: 'origin/makeathon-branch' is not a commit and a branch 'makeathon-branch' cannot be created from it。当我运行 git ls-remote --heads origin 时,我在列表中看到远程分支,但随后我尝试检查该分支并收到错误。唯一显示的远程分支是 origin/masterorigin/HEAD。有什么建议吗?

最佳答案

根据评论,输出:

git config --get-all remote.origin.fetch

是:

refs/heads/master:refs/remotes/origin/master
refs/heads/graphql:refs/remotes/origin/graphql

(没有前导加号)。

这告诉你 Git 当你运行 git fetch origin 时,它应该:

  • 查看他们的(origin 的)master 分支:如果您没有 origin/master 远程跟踪名称,请创建它;或者如果你的 origin/master 严格落后于他们的 master 分支,快进你的 origin/master 以匹配他们的 master.

如果您的 origin/master 以任何其他方式与他们的 origin/master 不一致,请拒绝更新您的 origin/master(因此更新不是快进)。这几乎永远不会发生,如果真的发生了,那就意味着有人被强制推到了原点;但一般来说,如果有人确实强制推送到原点,您可能应该选择新值。

要做到这一点,refspec——这对名字之间有一个冒号——应该以一个前导加号 + 开头。

  • 查看他们的 graphql 分支:如果您没有那个分支,或者它落后了,请进行适当的创建或快进。和以前一样,如果您的远程跟踪名称在其他方面不一致(领先于他们的分支,或既领先又落后于他们的分支),请拒绝更新它。

  • 丢弃所有其他分支信息:您不关心任何其他分支。

显然,最后一个 Gist 是错误的,因为您现在确实关心他们的另一个分支,即他们的makeathon-branch

您可以通过将其更改为标准设置来一次性更改所有这些,1:

git remote set-branches origin '*'

(这要求您的 Git 版本至少为 1.7.2),或者:

git config --replace-all remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'

(引号是为了保护 * 字符不受 shell 的影响,某些 Windows shell 不需要,只有 sh/bash 有时才需要)。该标准设置意味着:

  • 查看 origin 的所有分支。对于每个人,强制创建或重新设置相应的远程跟踪名称,使其与他们的相匹配。

如果名称是新的,这将创建名称;如果名称存在且落后,则快进;如果名称存在但与他们的不一致,则重新设置。

或者,如果到目前为止你只想保留三个远程跟踪名称,你可以添加 refs/heads/makeathon-branch:refs/remotes/origin/makeathon-branch,如果您想获取所有更新,则前导加号;如果您只想获取新创作和快进,则不带加号。

还有其他方法可以调整您的配置,包括我个人最喜欢的仅使用 git config --edit 在配置文件上调用您常用的编辑器(但请确保您使用的任何编辑器都会保存文件为纯文本)。


1A spoonerismfell swoop .

关于git - 在 git 中检查远程分支时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47558765/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com