比如说,我在“master”上并且有一个 blob:
DEBUG = FALSE
CACHE_SIZE = 100
code
code
code
现在我开始在一个新的分支中调试...
DEBUG = TRUE # Don't forget to turn off!
CACHE_SIZE = 0 # Don't forget to set back to 100!
...修复一些错误,更改一些代码...并将我的修复 merge 回“master”。但不幸的是,我忘记了将这些“不要忘记”-s 恢复为原始值。
如何自动执行将某些行返回到原始值的过程?或者至少将其缩短为单个命令。
也许,一些临时提交、 stash 或其他一些技术?
最佳答案
Cameron 对于短期调试更改有一些好主意。我想添加一个通用的,它甚至适用于更大或更永久的本地调试更改集,就像您每次添加功能时通常都进行相同的“不要忘记”更改一样。我听说它叫织布机、被子、堆叠的 Twig 和管道。您可以找到具有这些名称的插件来帮助维护这种工作流程,但我从未真正掌握它们之间的细微差别,并且该技术手动完成并不难。
基本思想是在 master 和 feature 之间添加另一个分支,我们称之为 debug。您在该分支中进行了所有“不要忘记”的更改,然后再次从调试分支到制作功能,其中包含您将投入生产的所有更改普通的。然后,要删除功能中的所有“不要忘记”更改,请执行以下操作:
git rebase --onto master debug feature
这让您看起来像是直接从 master 分支出来,并且从未在 debug 分支中添加更改。然后你像往常一样 merge 到master。下次您想添加功能时,只需将 master merge 到 debug 中,您的“不要忘记”更改会自动重新应用到最新的上游代码。然后只需从 debug 创建一个新的功能分支,然后循环再次开始。
显然,在 merge 到 master 之前,您仍然必须记住进行 rebase。如果您忘记了,Cameron 的 hook idea 可以用来防止 merge 。
关于git - 使用 Git 撤消临时更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446583/