从主人那里拉到另一个分支

时间:2018-03-26 08:23:31

标签: git

我正在尝试设置一个自动合并到主控的工作流程。

为此,我在一个名为dev-oshai的分支上本地工作,并希望始终将服务器推送到服务器上的那个分支:git push

当我想提取更改时,我希望始终从master中提取它们(CI会自动将所有开发人员的更改更新为master)。

为此我使用命令git pull --rebase origin master

此处有更多背景信息和详细信息:https://medium.com/@OhadShai/git-mono-branch-workflow-pre-tested-commits-4b34949310ad

是否可以将git配置为默认的pull分支为origin master,以便git pull可以在不指定分支的情况下工作?

2 个答案:

答案 0 :(得分:4)

[remote "origin"]
        url = <repo_url>
        fetch = +refs/heads/*:refs/remotes/origin/*
[remote "foo"]
        url = <repo_url>
        push = refs/heads/master:refs/heads/dev-oshai
[branch "master"]
        remote = origin
        pushRemote = foo
        merge = refs/heads/master
        rebase = true

这样,在分支master中,git pull相当于git pull origin -r master:mastergit push相当于git push foo master:dev-oshaioriginfoo的网址相同。

除了truebranch.master.rebase可以分配preserveinteractive

  

当保留时,也将--preserve-merges传递给git rebase以便这样做   运行git不会使本地提交的合并提交变平   拉。

     

当值为交互式时,rebase以交互模式运行。

答案 1 :(得分:1)

我认为不可能完全改变git pull的行为。 (除了创建别名)
但你可以减少打字。

首先,在你的gitconfig中设置pull to always rebase。

[pull]
    rebase = true

接下来,你可以做一点点破解。将您的遥控器添加为新的本地遥控器,因此您可以使用它两次 例如master。

git remote add master https://example.com/repo.git

获取所有分支

git fetch master

并将dev-oshai的上游设置为新远程控制器的主控。

git branch --set-upstream-to=master/master

现在你可以通过

从主人那里拉出来
git pull master

如果这确实是一个好主意,或者更有说服力而不是有帮助的是你的决定。