说,我在'掌握'并且有一个blob:
DEBUG = FALSE
CACHE_SIZE = 100
code
code
code
Run Code Online (Sandbox Code Playgroud)
现在我开始在一个新的分支调试......
DEBUG = TRUE # Don't forget to turn off!
CACHE_SIZE = 0 # Don't forget to set back to 100!
Run Code Online (Sandbox Code Playgroud)
...修复一些错误,更改一些代码......并将我的修复程序合并回"master".但不幸的是,我忘记了将这些"别忘了"-s归还给原始值.
如何自动将某些行返回原始值的过程?或者至少将它缩短为单个命令.
也许,一些临时提交,或藏匿,或其他一些技术?
Cameron对短期调试更改有一些好主意.我想添加一个常用的工具,即使对于更大或更永久的本地调试更改也是如此,例如,如果每次添加功能时通常都会进行相同的"不要忘记"更改.我听说它叫织机,被子,堆叠的树枝和管道.您可以找到带有这些名称的插件来帮助维护这种工作流程,但是它们之间存在着微妙的差异,我从未真正掌握过,而且这种技术并不难以手动完成.
基本思路是在master和feature之间添加另一个分支,让我们称之为debug.你让所有的"不要忘记",在该分支的变化,然后再从分支调试,使功能,它包含了所有的更改,将进入生产正常.然后,删除所有你的"不要忘记"的变化特征,这样做:
git rebase --onto master debug feature
Run Code Online (Sandbox Code Playgroud)
这使得它看起来像你直接从master分支,并且从未在调试分支中添加更改.然后你像普通人一样融入主人.下次要添加功能时,只需将master合并到debug中,您的"不要忘记"更改会自动重新应用到最新的上游代码.然后从调试中创建一个新的功能分支,然后再次启动循环.
显然,你仍然需要记住在合并到master之前进行rebase .如果你忘了,Cameron的钩子想法可以用来防止合并.