每次当我正为一个特性努力时,总会发现我需要先对代码的另外一部分进行扩展。如果我不能这样做,我会在那个点创建一个分支。但是我没有。我会以两个特性类和真实特性的附加改变作为结尾。使用git分别提交两个版本的代码,同时保证每个代码都被编译很容易。 我正在做我的新的大项目;命令行计算器。我已经完成了加法而且我对我已经完成的部分感到很高兴,我将要加入减法部分。在完成减法的途中我发现我需要对控制台输出格式类做一些修改。之前的部分我将“+”符号硬编码了,但是现在需要将它作为一个符号。我将它改为了符号而且得到了一个解决方案。 我实现了一个git 状态显示功能,然而效果看起来很不好。
我已经使用了更新后的ConsoleFormatter.cs、Program.cs 、 Subtraction.cs文件。 第一个文件包含了更新后的控制台格式化特性,它独立于新增功能。 我想单独提交ConsoleFormmatter.cs文件。不只是提交。 通过隐藏视图中的其它文件,我还想编译和测试我要提交的代码。 在 git中,使用几行命令便可以完成这些工作。 但是在版本控制中,我从来没有想出如何以一种足够简单的方式做到这些。 在 svn上,我通常是一次提交很多文件。 如果有人知道在 svn上如何实现提交部分文件,请留言。 阶段希望改变
做一个 git status 来显示 ConsoleFormatter.cs 文件现在已经准备好被提交。
隐藏其他变化
-k 开关告诉仓库保持文件的完整。 -u 开关告诉仓库包括无路径的文件(那些新的和未添加到git的)。 再次做一个 git status只显示了 ConsoleFormatter.cs 文件我想提交的第一步。这不仅仅是一个git的状态。这是实际的工作目录的内容。在这一点上我可以编译和测试我要检查的代码,发现它确实没有更新Program.cs文件。
两次提交我的测试表明,未更新的阶段更改不影响编译编译和运行,第一部的更改已经可以提交了。
是时候将其他的变更改回来了。
然后提交它们。
结果结果是一个漂亮的提交历史,独立的提交独立的更改。
(而且更改的字节数是对的。我之前被骗了,它们不是实际文件中的代码。) |