git - 使用 Git 撤消临时更改

标签 git debugging

比如说,我在“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 和管道。您可以找到具有这些名称的插件来帮助维护这种工作流程,但我从未真正掌握它们之间的细微差别,并且该技术手动完成并不难。

基本思想是在 masterfeature 之间添加另一个分支,我们称之为 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/

相关文章:

linux - gitweb 不通过符号链接(symbolic link)加载存储库

git - stash@{1} 不明确?

Git merge 到过去的提交

c# - 无法使用 ip :port but can with localhost:port during VS debug mode 访问 WEB API

docker - 在K8S pod中快速修改Python应用进行调试

java - git pull 后无法解决冲突

git - 为 git clone 禁用 Composer 缓存

maven - 如何在 Tomcat 上运行时调试 GWT 应用程序

debugging - 如何使用 VSCode 将命令行参数传递给调试器?

debugging - RN0.26 Debug JS 远程卡住app