我只是注意到,如果我们有本地和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
之前,应该始终执行一些额外的命令以确保您不会失去同步吗?
答案 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 flow
和git
。