【看日记学Git】之四

===

这次我们来研究“改进代码之后怎么提交给git”。

还记得在之三中我们项目的main.c吧,其中的内容其实就是一个helloworld:

[root@wupengchong rocrocket]# cat -n main.c
1  #include<stdio.h>
2  int main()
3  {
4  printf(“hello world!\n”);
5  return 0;
6  }
这个时候,我来对main.c进行一些修改,在printf语句前加入一行:

 

printf(“Version: 0.01\n”);

于是程序变成了这样:

[root@wupengchong rocrocket]# cat -n main.c
1    #include<stdio.h>
2    int main()
3    {
4    printf(“Version: 0.01\n”);
5    printf(“hello world!\n”);
6    return 0;
7    }

接下来的两道工序主要是由开发者最后确认一下“自己的修改”:

[root@wupengchong rocrocket]# git diff –cached
[root@wupengchong rocrocket]#

这个git diff –cached是用来查看index file和仓库之间代码的区别的。由于我们目前只是在working tree里做了修改,还没有报告给index file,所以使用此命令显然会输出空信息。而如果省略–cached选项的话,就是比较working tree和index file的区别,由于我们的确在working tree里做了修改,所以使用git diff后会输出修改信息。(可能有些读者不知道working tree是什么意思,其实很简单,通俗的说,它就是你的源代码文件,在这个例子里也就是main.c文件喽)

[root@wupengchong rocrocket]# git diff
diff –git a/main.c b/main.c
index 3a88d8c..e0fe92e 100644
— a/main.c
+++ b/main.c
@@ -1,6 +1,7 @@
#include<stdio.h>
int main()
{
+printf(“Version: 0.01\n”);
printf(“hello world!\n”);
return 0;
}
(至于git diff的输出内容我们现在不必研究太深,只要知道这些信息表示的是修改后和修改前的不同之处就可以了)

使用git diff了解了不同之后,还可以使用git status命令来获取整体改动的信息:

[root@wupengchong rocrocket]# git status
# On branch master
# Changed but not updated:
#   (use “git add <file>…” to update what will be committed)
#
#       modified:   main.c
#
no changes added to commit (use “git add” and/or “git commit -a”)

可以看到提示信息“changed but not updated”,就是说git发现你有已经修改了但还未git add的内容。

如果git提示说“Changes to be committed”,那就是表明git发现了你已经git add但还未git commit的内容。

如果git提示说“Untracked files”,那么就是你增加了新文件或者在某个子目录下增加了新文件。

下面该进入提交阶段了。首先运行

[root@wupengchong rocrocket]# git add main.c

这句是要告诉git,我已经修改了main.c文件,你(指git)去检查一下。当然,如果你新增加了一个文件,比如new.c,也需要在这里先执行git add new.c告诉git。

提交我的工作:

[root@wupengchong rocrocket]# git commit
Created commit ecf78d1: This is the second version.
1 files changed, 1 insertions(+), 0 deletions(-)

至此,我的修改工作完成了,而且也顺利地提交给了git。还是不放心?来查查:

[root@wupengchong rocrocket]# git log
commit ecf78d1b3603d0f5015e8b14bee69870db6459e1
Author: rocrocket <wupengchong@gmail.com>
Date:   Thu Sep 18 15:39:47 2008 +0800

This is the second version.

Version 0.02

commit 3b1e328ad80caebe7fe2f4229e247d2ebe669cd8
Author: rocrocket <wupengchong@gmail.com>
Date:   Thu Sep 18 15:32:53 2008 +0800

This is the first git project.

At 20080916
用git log可以查看开发日志!看到黑体字了吧,Version0.02就是我刚才在git commit时输入的新信息。这已经是我们项目的第二个开发版本了。(成就感油然而生)

===

总结一下

如果修改了项目代码,先git add你修改过的文件,再git diff并git status查看确认,然后git commit提交,然后输入你的开发日志,最后git log再次确认。

现在教给你一个偷懒方法,那就是git commit -a,这个命令可以直接提交所有修改,省去了你git add和git diff和git commit的工序,可谓一条龙服务。

但是,此处有一点应该注意,那就是git commit -a无法把新增文件或文件夹加入进来,所以,如果你新增了文件或文件夹,那么就要老老实实的先git add .,再git commit喽。[此处非常感谢freeren的提醒]

对了,针对开发日志,要说一句:切记写开发日志的时候,第一行一定要是少于50字的开发概括信息,而且第二行务必是空行,第三行开始才可以开始细致描述开发信息。这是因为很多版本服务系统中的email机制都会选取log中的第一行为邮件题目。(你应该明白了吧:))

ps:我可能在此前也没有太注意关于日志写法的问题,今后也要避免错误:)

转载:http://www.gitchina.org/?p=175

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值