为了实现git nirvana,我花了一整天的时间学习如何在当前合并的情况下利用rebase。
在运行我认为是git 101的流程(我在下面说明)时,必须push --force
将更改推回原点。
我不是唯一的一个-我知道,这是覆盖地面(见1,2,3,4,5),我理解的技术原因,为什么力是必要的。我的问题是这样的---有歌声底垫的赞美很多(多)发表的博客以及它如何改变他们的生活(见1,2,3,4,列出了几个),但他们没有提到push --force
是的一部分他们的流量。但是,几乎所有对现有stackoverflow问题的回答都说“是的,如果您要重新设置基础,您必须使用push --force
”。
考虑到rebase拥护者的数量和宗教信仰,我必须相信使用'push --force'并不是rebase流程的固有部分,并且如果人们经常不得不强迫自己推送,那么他们在做错事。
push --force
是件坏事。
这就是我的流程。 没有力量我能以什么方式获得相同的结果?
简单的例子
两个分支:
- v1.0-版本分支,仅包含补丁
- 大师 -下一个主要版本的所有内容。
我有一些补丁提交,还有一些针对下一个发行版的提交。
我想将这些修补程序合并到我的母版中,以使它们不会在下一发行版中丢失。启蒙前我会简单地:
git checkout master
git merge v1.0
但是现在我正在尝试
git checkout master
git rebase v1.0
所以现在我在这里:
的时间:
git push
没有骰子。