如果原始/开发不同步,则git flow功能完成不会推送

时间:2018-07-26 01:04:30

标签: git git-flow

我只是注意到,如果我们有本地和origin/develop的样子

local:          A---B
origin/develop: A---B

如果我接下来git flow feature start Z工作了一段时间,我可能会遇到以下问题:

local:          A---B
origin/develop: A---B---C---D

我现在做git flow feature finish Z,并收到有关以下内容的警告:

  

“开发”和“起源/开发”分支不同。
  本地分支“发展”领先于“起源/发展”

我现在有(无推送):

local:          A---B---Z
origin/develop: A---B---C---D---E

我尝试做git pull,然后下降了一大堆git合并成develop的更新,所以我最终得到了:

local:          A---B---Z-----------Z'
                     \--C---D---E--/
origin/develop: A---B---C---D---E

如果我做git push origin/develop,我将把我们整洁的develop流整齐,所以经过一番谷歌搜索后,我最终做了:

git pull --rebase --prune
git push origin develop

这使我恢复到:

local:          A---B---C---D---E---Z
origin/develop: A---B---C---D---E---Z

这样做,我实际上发现以前的功能也由于相同的问题而失败了……我以为我们使用git flow隐藏了所有这些常见的小问题和陷阱。

那么,我误用了git flow吗?在feature finish之前,应该始终执行一些额外的命令以确保您不会失去同步吗?

2 个答案:

答案 0 :(得分:2)

正如我mentioned here一样,您可以在本地设置:

git config --global pull.rebase true
git config --global  rebase.autoStash true

这样,在您develop之后对git flow finish进行的任何拉动都会自动有效地重新建立Z(尚未推送)的基准。

答案 1 :(得分:1)

我还没有使用'(但是我们使用git flow方法)并且基本的git命令就足够了。

这可能无法直接回答您的问题,但是我建议删除git flow扩展名。您不必学习两种产品:git flowgit