【问题标题】:Configure a local branch for push to specific branch配置本地分支以推送到特定分支
【发布时间】:2011-05-05 18:43:21
【问题描述】:

对不起,如果这个问题已经被问过了。

我正在从一个名为“git_lab”的 repo 克隆,该 repo 有一个名为“test”的分支 克隆时我使用“-b myname_test”创建一个名为“myname_test”的本地分支,本地克隆名为“myname_git_lab”

当我执行“git pull”时,它会自动获取并合并从“test”到“myname_test”的更改,但是对于 git push,我需要指定 repo 和分支名称。

$>git 远程显示 git_lab

为“git pull”配置的本地分支: myname_test 与远程测试合并

有没有办法可以配置“为 'git push' 配置的本地分支”,这样我就不需要指定分支和 repo 名称?

【问题讨论】:

    标签: git git-branch git-push remote-branch git-config


    【解决方案1】:
    git checkout --track origin/branchname
    

    或者,您可以编辑 .git 文件夹中的配置文件。

    【讨论】:

    • 谢谢,但是设置远程 url 是指定要推送的远程存储库,我如何指定要推送到的远程分支?由于我的本地分支名称和远程分支名称不同
    • 跟踪应该可以帮助您。编辑了回复。
    • 跟踪默认不影响推送。而如果分支已经存在,git checkout --track绝对不是设置跟踪信息的方式。
    【解决方案2】:

    您可以在这里做两件事。

    • push.default 设置为tracking,以便它将所有分支推送到它们跟踪的远程分支,而不是它们同名的分支,然后使用适当的跟踪信息配置您的分支。 (例如,将branch.master.remote 设置为origin,将branch.master.merge 设置为refs/heads/foo。)

    • 手动推送。 git push origin master:foo 会将你的本地 master 分支推送到远程 origin 上的分支 foo

    但是,我建议您真正 想要做的只是使分支名称相同。

    (您可以使用git config 设置配置参数,例如git config push.default tracking,或直接编辑.git/config 文件。)

    【讨论】:

    • "git config push.default tracking" 工作......非常感谢,只是想知道......为什么我们需要指定这个配置设置,我想当我们克隆时使用 - b 选项一切都设置好了。 (克隆后自动设置branch.master.remote和branch.master.merge)
    • @Senthil:这些设置确实是自动进行的,但推送的默认行为是推送 匹配 分支,而不是跟踪分支。因此,这些设置通常只影响 fetch/pull,而不是 push。请参阅git config manpage 中的 push.default。
    • git branch --set-upstream 怎么样?
    • @adymitruk:这确实比在第一个项目符号的括号中手动设置一对配置参数更顺畅。这是一个相当新的功能,所以我忘记了。然而,问题的主旨是让它与 push 一起工作——而且 OP 似乎已经配置了跟踪分支——所以重要的部分是push.default
    • git config push.default tracking 似乎对我有用。 +1。
    猜你喜欢
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2011-06-12
    • 1970-01-01
    • 2016-06-06
    • 2016-10-25
    相关资源
    最近更新 更多