gpt4 book ai didi

git - 如何设置当前分支(dev)以仅使用 git push 推送到 refs/remotes/test?

转载 作者:太空狗 更新时间:2023-10-29 14:17:11 27 4
gpt4 key购买 nike

我已经设置了我当前的分支 dev 以使用以下 git push --set-upstream origin dev:test< 推送到 refs/remotes/test/

.git/config 看起来像:

[remote "origin"]
url = https://appulocal@bitbucket.org/appulocal/test_st.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "dev"]
remote = origin
merge = refs/heads/test

但是当我执行 git push 时,它不会从本地 dev 推送到远程的 test。 Git bash 显示消息:

fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use

git push origin HEAD:test

To push to the branch of the same name on the remote, use

git push origin dev

To choose either option permanently, see push.default in 'git help config'.

如何解决这个问题,以便只有在执行 git push 时,我当前的分支 dev 才会推送到远程的 test

最佳答案

实际上,您已经将 dev 设置为 pull from refs/remotes/test。这就是分支的 merge 选项所控制的。这有点令人困惑,因为这是使用 push 命令设置的;但是一组不同的配置选项决定了推送的行为方式。

问题是,git 检查许多事情来决定如何处理推送,而我们大多数人习惯的行为是在没有设置任何事情时的默认行为......但是 如果分支名称不匹配,git 不愿意依赖该默认值,因为它认为这在您可能尝试使用的两种不同配置之间存在歧义。

在您的情况下,您希望为您的 dev 分支指定 test 的推送目的地。有几种方法可以解决这个问题,但是当你在一个不同的分支上时,我想不出任何没有一些副作用的方法git push.

假设您只推送到一个 Remote - 并且它是您从中 pull 出的同一 Remote - 您可以设置 push.default 配置值

git config push.default upstream

这将删除“同名”检查。 (请注意,它删除了对 所有分支 的检查;但只要您打算始终推送到您在 pull 期间 merge 的任何分支,就可以了。)官方文档认为这仅适用于单远程工作流。

如果您想更精确地指定将内容推送到何处,您可能只需要在推送命令行上指定 refspecs。

关于git - 如何设置当前分支(dev)以仅使用 git push 推送到 refs/remotes/test?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45144872/

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