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提供了文件忽略功能,可以用来解决这个问题。