有时我需要对我的代码库进行更改,而这些更改是我绝对不想提交的。这些可能包括:
TODO:
对在我提交之前必须完成的事情的紧急评论{li} 我意识到我可以使用git update-index --skip-worktree
忽略整个文件,但这对我完全没有好处 1 。我要跳过的更改几乎总是 在文件中,这些文件也有我要做要提交的更改。有什么办法吗?
1 因此,this question也无法回答。
答案 0 :(得分:2)
“隐藏git中的某些更改” 声音可以解决所有这些情况,但是您可能会重新考虑它是否是其中的 best 解决方案[1]
手动方法是有选择地进行更改。这可以通过-i
的{{1}}或-p
选项来完成。 (有关如何使用这些模式的详细信息,请参见https://git-scm.com/docs/git-add。)
或者,您可以对过滤器执行某些操作。只要可以通过脚本识别要忽略的更改(例如使用正则表达式来查找添加到不需要的注释中的某种标签),那么干净的过滤器就可以轻松删除它们。如果您希望以后的检出将本地副本保持原样,则相应的污迹过滤器可能会更难。 (您可以让干净的过滤器跟踪其存储的内容,然后再将污迹过滤器放回去...但是存在潜在的复杂性,尤其是如果您正在与其他开发人员合作时。)我认为{{1} }文档(在git add
属性下)将是开始查找有关此信息的最佳位置。 https://git-scm.com/docs/gitattributes
[1]如果必须在提交前完成TODO,则将它们从git中隐藏起来(建议继续进行提交)将使TODO注释失去意义。拒绝包含此类评论的提交会更好吗?只要您的注释遵循可预测的模式,您就可以使用预提交钩子来做到这一点。
如果您只是在提交中忽略调试器语句,则它们大概会保留在您的工作副本中(有可能被遗忘并堆积在此处)。这是一个比TODO更加基于意见的问题,但是再次提醒自己有必要与他们打交道而不是不理会它们更好吗?
配置文件更改涉及到更广泛的问题;我通常的建议是避免您可能需要在本地更改源代码控制文件。不过,其他解决方法也取决于您的构建工具。