为了实现 git 必杀技,我花了一天时间学习如何在我目前合并的情况下利用 rebase。
当运行我认为是 git 101 流(我在下面详细说明)push --force
时,我必须将我的更改推回原点。
我不是唯一一个 - 我知道这是被覆盖的地面(见1 , 2 , 3 , 4 , 5),并且我理解为什么需要使用武力的技术原因。我的问题是——有许多(许多)博客文章歌颂 rebase 以及它如何改变了他们的生活(参见1、2、3、4列出一些),但没有一个提到这push --force
是他们的流量。然而,几乎所有对现有 stackoverflow 问题的回答都说“是的,如果你要变基,你必须使用push --force
”。
鉴于 rebase 拥护者的数量和宗教信仰,我必须相信使用“push --force”不是 rebase 流程的固有部分,如果一个人经常不得不强迫他们推动,他们做错了什么。
push --force
是一件坏事。
所以这是我的流程。 在没有力量的情况下我可以通过什么方式获得相同的结果?
简单示例
两个分支:
- v1.0 - 发布分支,仅包含补丁
- master - 下一个主要版本的一切。
我有一些补丁提交和下一个版本的一些提交。
我想将补丁合并到我的 master 中,这样它们就不会在下一个版本中丢失。启蒙前我只想:
git checkout master
git merge v1.0
但现在我正在尝试
git checkout master
git rebase v1.0
所以现在我在这里:
的时间:
git push
没有骰子。