我已经阅读了关于git的rerere功能的各种内容,我正在考虑启用它.但我没有看到有人提到使用它时可能出现的任何问题.我必须假设有一个缺点,或者它可能默认启用.那么启用rerere有什么缺点吗?哪些潜在的问题会导致不会发生?
我有一个(大)提交树,其中包含几个我想要重新绑定到另一个提交的合并提交.执行正常的rebase会导致git要求我解决合并冲突.我不想审查每个合并,因为这将是很多工作.在找到--preserve-merges选项后,这里有一个很好的解释,我认为我找到了完成这项任务的完美工具.但是,我似乎无法让它正常工作.我创建了一个演示问题的玩具示例.
从空文件夹开始,我们首先创建一个带有合并的分支和另一个我们将在其上进行rebase的分支.
A---B--
\ \
---C---D
\
---E
Run Code Online (Sandbox Code Playgroud)
其中主指乙,分支指d和再见分支指È.
git init
echo Hello > Hello.txt
git add Hello.txt
git commit -m "Create Hello.txt (commit A)"
git tag start
echo World! >> Hello.txt
git commit -am "Change to Hello World (commit B)"
git checkout start
git checkout -b branch
echo Dave >> Hello.txt
git commit -am "Change to Hello Dave (commit C)"
git merge master
echo Hello …Run Code Online (Sandbox Code Playgroud) 我有以下情况:我做了一些提交到我的本地存储库,然后另一个分支(~150提交)的巨大合并到主 - 它有很多冲突.
现在,我想在合并之前将我提交的提交移动到推送之前.
通常情况下,我会使用"rebase -i".
不幸的是,默认行为是打破我所做的一次合并提交,实际上已经将150多个提交添加到单独的提交中(我理解它就像我将使用rebase而不是合并开始) - 这是不好的行为我有几个原因.
我发现了rebase的'-p'标志,它保留了合并,并且非常高兴.不幸的是,这实际上再次应用了相同的合并,并且忘记了我在解决冲突方面的辛勤工作.再次 - 不好的行为!
是否有我想要的解决方案?合并后使用rebase -i重新排序或编辑特定提交而不必重复我的合并后操作?
谢谢!