10.7 Hello World引发的新问题

到src目录中,对Hello World执行编译。


$cd/path/to/my/workspace/demo/src

$make clean&&make

rm-f hello main.o version.h

version.h.in=>version.h

cc-c-o main.o main.c

cc-o hello main.o


运行编译后的程序,是不是对版本输出不满意呢?


$./hello

Hello,world.

version:old_practice-4-gd71ce92.


之所以显示长长的版本号,是因为使用了在本章最开始留的“影”。现在为Hello world留下一个新的“影”(一个新的里程碑)吧。


$git tag-m "Set tag hello_1.0." hello_1.0


然后清除上次编译结果后,重新编译和运行,可以看到新的输出。


$make clean&&make

rm-f hello main.o version.h

version.h.in=>version.h

cc-c-o main.o main.c

cc-o hello main.o

$./hello

Hello,world.

version:hello_1.0.


还不错,显示了新的版本号。此时在工作区查看状态,会发现工作区“不干净”。


$git status

On branch master

Untracked files:

(use "git add<file>…"to include in what will be committed)

#

hello

main.o

version.h


编译的目标文件和从模板生成的头文件出现在了Git的状态输出中,这些文件会对以后的工作造成干扰。当写了新的源代码文件需要添加到版本库中时,因为这些干扰文件的存在,不得不逐一挑选要添加的文件。更为严重的是,如果不小心执行git add.或git add-A命令会将编译的目标文件及其他临时文件加入版本库中,浪费存储空间不说,甚至还会造成冲突。

Git提供了文件忽略功能,可以用来解决这个问题。