【发布时间】:2009-08-17 15:03:39
【问题描述】:
对于那些将绝对路径和数据库凭据硬编码到 Web 应用程序中的多个随机位置的人来说,这里有一个特殊的地方。可悲的是,在他们下地狱之前,他们正在地球上造成严重破坏。我们必须处理他们的代码。
我必须对此类 Web 应用程序之一进行一些小的更改。我创建了一个新分支features,并执行全局查找和替换以将路径和凭据更新到我的本地环境。我承诺。我还将其标记为local。
我愉快地跳入了危险的黑客忏悔,经过一百个令人困惑的补丁后,我想将我的features 更改合并到master 分支,但我不希望local 提交被合并。
以后,我将在master 和features 之间来回合并,我希望local 留在features 中,并且永远不会出现在master 中。
理想情况下,我希望这一切都能神奇地发生,尽可能少用有趣的参数等等。
有没有我想念的简单明显的方法?
我可以想到几个,但它们都要求我记住我不想要那个提交。这绝对不是我的强项。尤其是对于这样被黑客入侵的程序。
如果做不到这一点,我对更复杂的手动方式来处理这种情况感兴趣。
【问题讨论】:
-
是的,是的,是的。理想情况下,我应该重构愚蠢的应用程序。只要我得到报酬就去做。 (而且我可以想到其他一些这样的模式有意义的情况,即使在结构良好的应用程序中也是如此)
-
在我的回答中添加了对您评论的回复。
-
另一个选项:使用其中一个被子扩展(guilt、stacked git 等)并在队列中重命名一个补丁。我相信这些扩展不会让您将尚未集成回常规提交的补丁合并,因此您不会意外将其合并。仍然不理想,因为您需要记住弹出然后重新应用每次你有新的正常提交时都打补丁,但你解决了忘记你不想要那个提交的问题。
标签: git version-control branch dvcs merge