background preloader

看日记学git

Facebook Twitter

之九(总结) | linux大棚. 《看日记学git》系列 《看日记学git》之序 《看日记学git》之一 《看日记学git》之二 《看日记学git》之三 《看日记学git》之四 《看日记学git》之五 《看日记学git》之六 《看日记学git》之七 《看日记学git》之八 温故而知新,恩! 获得帮助可以使用类似man git-****的命令格式: 想获得关于commit命令的帮助,则man git-commit 想获得关于pull命令的帮助,则man git-pull 想获得关于merge命令的帮助,则man git-merge 以此类推 任何人在使用git之前,都要提交简单的个人信息,以便git区分不同的提交者身份。 #git config –global user.name “your name” #git config –global user.email yourname@example.com 想新开启一个项目,应该先建立一个目录,例如名为myproject,然后所有的项目开发内容都在此目录下进行。 #cd myproject #git init #git add . #git commit //这个步骤会自动进入编辑状态,要求提交者输入有关本次提交的“开发信息” 至此,一个新项目就诞生了,第一个开发信息(开发日志)也随之诞生。 如果改进了项目源代码,并且到了开发者认为“应该再次记录开发信息”的时候,则提交“工作成果”。 #git commit -a //这是一个偷懒的命令,相当于git add .; git commit; 但是,此处有一点应该注意,那就是git commit -a无法把新增文件或文件夹加入进来,所以,如果你新增了文件或文件夹,那么就要老老实实的先git add . 想检查到目前为止对源码都做了哪些修改(相对于本次工作刚开始之时): #git diff //这个命令只在git add之前使用有效。 #git diff –cached //这个命令在git add之后在git commit之前有效。 #git status //这个命令在git commit之前有效,表示都有哪些文件发生了改动 想查看自项目开启到现在的所有开发日志 #git log #git log -p //会输出非常详细的日志内容,包括了每次都做了哪些源码的修改 #git branch //显示当前都有哪些分支,其中标注*为当前所在分支 如果分支开发成功:

之八 | linux大棚. 之七 | linux大棚. 之六 | linux大棚. 之五 | linux大棚. 之四 | linux大棚. 《看日记学git》系列 《看日记学git》序 《看日记学git》之一 《看日记学git》之二 《看日记学git》之三 这次我们来研究“改进代码之后怎么提交给git”。 还记得在之三中我们项目的main.c吧,其中的内容其实就是一个helloworld: [root@wupengchong rocrocket]# cat -n main.c 1 #include<stdio.h> 2 int main() 3 { 4 printf(“hello world! Printf(“Version: 0.01\n”); 于是程序变成了这样: 接下来的两道工序主要是由开发者最后确认一下“自己的修改”: [root@wupengchong rocrocket]# git diff –cached [root@wupengchong rocrocket]# 这个git diff –cached是用来查看index file和仓库之间代码的区别的。 使用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)去检查一下。 提交我的工作: Version 0.02 总结一下 over~ 之三 | linux大棚. 本原创文章属于《Linux大棚》博客。 博客地址为 文章作者为roc 希望您能通过捐款的方式支持Linux大棚博客的运行和发展。

请见“关于捐款” 《看日记学git》系列 《看日记学git》序 《看日记学git》之一 《看日记学git》之二 昨天了解了一些关于版本控制系统的概念,知道了到底版本控制系统是用在哪些方面了。 为了学习git,我首先会登录到google查询git的官网地址,是 最先映入眼帘的是这样一句话:git – the stupid content tracker。 其次,你会看到官网对于“学习路线的推介”:新手请浏览gittutorial(7),然后是Everyday Git(包括了常用命令),接着是”man git-commandname”,cvs用户需要看gitcvs-migration(7),需要更全面的了解git请看 Git User’s Manual。 如果你希望用“男人”来获取帮助,那么基本格式是这样:man git-commandname 比如man git-log就是获取git日志方面的信息;man git-commit就是获取“提交项目”方面的信息。 我将按照官网的说明开始我的学习--“新手请浏览gittutorial(7)”。 在gittutorial(7)里将会涉及到如何导入一个新的项目。 首先你最好把自己介绍给git系统,比如自己的姓名阿、email阿。 Git config –global user.name “Your Name” git config –global user.email “you@example.com” 我照例执行: [root@wupengchong ~]# git config –global user.name “rocrocket” [root@wupengchong ~]# git config –global user.email “wupengchong@gmail.com” 下面是学习如何导入一个新的git项目。

现在我手头已经有了一个伙伴刚刚用email传给我的用c语言编写的项目(假设只有main.c一个文件),而且这个项目的全部代码和资源都放在rocrocket目录下,我将用下面的步骤来导入这个项目:(黑体字为重点) git commit的日志编辑. 之二 | linux大棚. 之一 | linux大棚. 本原创文章属于《Linux大棚》博客。 博客地址为 文章作者为roc 希望您能通过捐款的方式支持Linux大棚博客的运行和发展。 请见“关于捐款” 今天是“git第一天”,和我“从零开始”吧! 我用命令rpm -qa|grep -i git查看一下我的机器是否安装了git: [rocrocket@wupengchong ~]$ sudo su - [root@wupengchong ~]# rpm -qa|grep -i git libcapseo-0.2.0-0.1.20080603gita6ec446.fc9.i386 libcaptury-0.3.0-0.1.20080323gitcca4e3c.fc9.i386 xorg-x11-drv-nouveau-0.0.10-2.20080408git0991281.fc9.i386 xorg-x11-drv-digitaledge-1.1.1-1.fc9.i386 此处grep命令使用-i是表示不区分大小写,这样的话无论是大写小写的git/GIT/GiT…都不会逃过grep的法眼。 结果发现了一些似乎使用git管理的开发项目,还有一些包含git字符的其他包,但就是没发现git包。

如果使用fedora的yum来安装git,应该是相当简单。 此处的grep命令使用了^符号,表示后面的字符串需要在每行的最开头位置,于是我们得到了如上的一大串git软件包。 原来: git包是git的核心程序,它只包括最小的依赖关系,如果只安装git包的话,那么一些git的外围扩展将无法使用。 Git-all包包括了所有的集成在git上的外围扩展功能。 Git-arch包是为了兼容arch仓库的。 Git-cvs包用于支持从cvs仓库导入到git仓库。 Git-daemon包用于支持用户使用 git-email包支持使用git发送邮件。 Git-gui包是一个基于Tk的git程序,也就是说是带有GUI的,可以用鼠标点击操作的git。 Git-svn包用于支持从svn仓库导入到git仓库。 Gitk包是一个带有Tcl/Tk GUI的可以用来浏览git仓库历史信息的桌面程序。 Gitweb包则是一个成熟的基于web的用于git仓库管理的web程序。 知道了每一个包的作用后,我们就来安装吧! 今天就到这里。