我使用git来维护某种版本控制,并在多台机器上同步我的工作,因为我确实倾向于在多台机器上工作。我是唯一在我的代码上工作的人。
我可以使用git做大多数的基础工作,例如,git签出一个文件来将单个文件返回到较早的状态,并使用git revert (我害怕使用git revert,因为我仍然没有完全理解它的一些复杂性)来将整个项目恢复到较早的状态。我有时也会使用git分支将代码分支到不同的方向,特别是在我不确定方向的情况下。
然而,我对git的了解还不够深入,随着工作的深入,我仍然倾向于不断地重新保存源文件。例如,当我完成时,我可能正在做项目18.c,在我完成代码的过程中,我已经经历了1...18。这是除了在处理文件时进行频繁的git提交之外,所以我有两种有效的方法来“回拨”我在项目上的工作。然而,这种增量文件编号对于分散在多个文件中的代码不能很好地工作,因为跟踪跨多个文件实现的功能太疯狂了。我怀疑,通过更努力地创建封装的自包含函数,并对周围的函数隐藏内部实现,是解决我的一些问题的更好的解决方案。
人们经常建议对每个主要的新功能或代码片段执行git提交,然而,当我不能执行频繁的git提交时,如果我放弃了实现代码的特定方式,我经常会花费过多的时间手动“退出”有buggy的代码。我怀疑,提前更好地规划//设计代码有时可能会有所帮助,但通常很难完全预测最终会是死胡同或有but的代码片段。
我正在寻找一种实用的版本控制策略,特别是在事情进展不顺利的时候,它可以帮助调试有问题的部分。
发布于 2012-10-15 16:20:37
如果你认真对待你的工作习惯(例如,如果你想为了生活而写代码,或者为一些自由软件项目做贡献),最好习惯于经常提交。提交应该仍然有一些逻辑,你每写十行代码就提交一个单独的提交,这是很失礼的。小的&逻辑的提交是很好的回顾或bisect,如果你遇到了一个回归。
如果您需要许多检查点,您可以为您正在处理的功能的测试套件执行一次提交,并为测试套件的每个通过部分执行一次提交。或者类似的东西,取决于你的工作风格。(使用Git,如果需要,您可以在发布更改时清除历史记录。)如果你发现这还不够,你就做错了什么。
发布于 2012-10-15 16:26:15
问题的解决方案分为两个不同的部分:
Understanding提交
你需要更好地理解提交背后的想法和最初的想法。理想情况下,提交必须与执行某些操作(如函数或某些部分的重构)的代码处于同一级别。因此,您需要经常提交,如果您不这样做,您将简单地丢失有关您的进度的信息,如果您执行了这些提交,则会记录这些信息。为了更好地理解http://git-scm.com/book的工作原理,我推荐阅读git。
探索分支
如果您正在同一项目中处理不同的不相关功能,那么进行彼此无关的连续提交可能会很烦人。分支出现了,这是一个强大的功能,允许您在同一时间处理不同的想法,彼此独立(代码方面的)。您可以在前面的链接中找到有关如何分支等的信息。但是,这里也有一篇关于使用git分支的模型的文章,它对具有多个特性的大型软件http://nvie.com/posts/a-successful-git-branching-model/特别有帮助。
https://stackoverflow.com/questions/12891607
复制相似问题