认识GIT之入门

前言

GIT是非常优秀的源代码版本管理工具,经过几年的发展,已经变得非常成熟以及流行,不同于其他的源代码管理系统,值得使用。GIT官网下载在线安装包,经常会中途退出,很有可能的原因是被墙了,所以建议使用别人搞好的离线安装包进行安装。

GIT是啥

公元的某一天,Linux内核源代码版本控制系统的作者因某因突然宣布说我的这个版本控制系统不再免费,很多Linux内核开发者慢慢弃用这个软件。Torvalds大神决定寻找新的替代品,新的替代品必须符合几个要求:开源免费,高性能,支持分布式,支持非线性工作流,安全健壮,找了一段时间,发现没有符合要求的版本控制系统。这该肿么办呢?这个肯定难不倒大神,大神决定自己撸一个,大概花了不到2周的时间,一个可用的版本搞出来了,经过压力测试,分支合并速度贼快,大神很满意,于是乎用于Linux内核项目了。随着功能的不断完善,越来越多的开发者使用GIT来管理他们的代码,GIT就这样在开发者之间流行起来了。GIT来自于英国的俚语,意为“不受欢迎的人”,在GIT帮助文档中,大神把它描述为“傻瓜内容追踪器”,大神还是一位很有个性的人呵!说了这么多,到底GIT是啥玩意呢?GIT是开源免费源代码版本控制系统,支持分布式,分支合并功能非常强大,响应速度快。
(备注:此段内容根据查到的资料自己YY的^_^^_^)

GIT开发流程


1.从远程仓库完整克隆一份到本地仓库
2.开发人员在本地仓库编辑源码
3.开发人员对本地仓库添加,提交,分支,合并等操作
4.开发人员各种修改日志会记录到本地仓库
5.开发人员打一个补丁发给主程开发人员
6.主程开发人员会检查补丁,确认没问题开发人员所做改动会PUSH到远程仓库
7.其它开发人员可以PULL远程仓库,把修改的代码合并到自己本地仓库中

GIT安装
1.参考git pro 教程安装这一小节
http://git.oschina.net/progit/1-%E8%B5%B7%E6%AD%A5.html#1.4-%E5%AE%89%E8%A3%85-Git
2.离线安装
http://www.cnblogs.com/fantacity/p/4347472.html

GIT配置
1.全局配置 用户家目录下 .gitconfig
2.本地版本库局部配置 工作目录 .git/config
3.查看配置项

$ git config -l 

4.设置全局配置

$ git config --global key value

5.设置局部配置

$ git config key value

6.使用GIT之前需要配置好的项:用户名和电子邮件(日志记录会永久保存)
a.用户名

$ git config --global user.name wadeyu

b.电子邮件地址

$ git config --global user.email [email protected]

GIT帮助命令

$ git help xxcmd

GIT常用命令

1.创建一个版本库

$ cd xx
$ git init

2.增加内容
a.添加指定的文件

$ git add file1 file2 ...

b.添加所有未被追踪的文件

$ git add -A

3.移除文件(执行完之后,需要提交版本)
a.移除暂存区域以及工作区文件(备注:-f表示强制移除)

$ git rm -f filename 

b.只移除暂存区域,工作区文件不删除

$ git rm --cached filename

c.文件名正则模式

$ git rm log/\*.log

d.递归删除当前目录及其子目录中所有 ~ 结尾的文件

$ git rm \*~

4.提交内容
a.提交已添加至追踪的文件

$ git commit -m "本次提交说明"

b.提交所有的文件至本地仓库中

$ git commit -a -m "本次提交说明"

5.移动文件

$ git mv file_from file_to

(备注:相当于执行了这3条命令 1.mv file_from file_to 2.git rm file_from 3.git add file_to)

6.查看版本库状态

$ git status

7.比较不同文件区域差异
a.文件所在区域:工作目录,暂存区域,本地版本仓库
b.比较工作目录中当前文件和暂存区域快照之间的差异

$ git diff

c.查看已经暂存起来的文件和上次提交时的快照之间的差异

$ git diff --cached (备注:GIT1.6.1之后的版本支持,git diff --staged写法)

8.提取版本库中的数据覆盖工作树中的数据

$ git checkout -f file-name

9.拷贝远程仓库

$ git clone git://github.com/schacon/grit.git workdirname

10.查看提交历史

$ git log 

常用参数说明
-p 展开显示每次提交的内容差异
-(n) 仅显示最近的 n 条提交
--since, --after 仅显示指定时间之后的提交
--until, --before 仅显示指定时间之前的提交
--author 仅显示指定作者相关的提交
--committer 仅显示指定提交者相关的提交
--stat 显示简要的增改行数统计
--graph 显示ASCII图形表示的分支合并历史
--pretty 可以指定使用完全不同于默认格式的方式展示提交历史

$ git log --pretty=oneline 每个提交信息一行显示 (备注:short,full,fuller,format)

(备注:format可以自定义需要显示的格式)

$ git log --pretty=format:"%h- %an, %ar : %s"

选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明

$ gitk (备注:图形化工具查看提交历史)

11.撤销操作
a.修改最后一次提交

$ git commit --amend

b.取消已经暂存的文件

$ git reset HEAD filename

c.取消对文件的修改

$ git checkout filename

远程仓库
1.查看当前的远程仓库

$ git remote -v

2.添加远程仓库

$ git remote add [shortname] [url]

3.从远程仓库抓取数据

$ git fetch [remote-name|remote-url]
$ git pull [...]

(备注:fetch不会合并当前分支,只拉取差异到本地,需要手动合并;pull会自动合并到当前分支)

4.推送到远程仓库

$ git push [remote-name] [branch-name]

5.查看远程仓库信息

$ git remote show [remote-name]

6.远程仓库重命名

$ git remote rename [old-name] [new-name]

7.删除远程仓库

$ git remote rm [remote-name]

逆转与恢复

$ git reset [--mixed | --soft | --hard] [<commit-ish>]

1.命令选项说明
a. --mixed
仅重置索引位置,不改变工作数中的任何东西
b. --soft
既不触动索引位置,也不改变工作树中的内容
c. --hard
将工作树中内容与索引都切换到指定的版本位置中,也就是说自 <commit-ish> 之后的所有的跟踪内容和工作树中的内容都会全部丢失

忽略某些文件
1.工作目录配置.gitignore文件
2..gitignore文件格式规范
a.所有空行或者以注释符号 # 开头的行都会被 Git 忽略
b.可以使用标准的 glob 模式(备注: shell 所使用的简化了的正则表达式)匹配
c.匹配模式最后跟反斜杠(/)说明要忽略的是目录
d.要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反

后记

这个是学习GIT的开篇,后面还会继续学习GIT更加高级的特性,业余折腾的项目中会使用GIT作为源代码管理工具

参考资料

[1]维基百科GIT介绍

https://en.wikipedia.org/wiki/Git_(software)

[2]Pro GIT 中文版

http://git.oschina.net/progit/

[3]百度百科GIT介绍

http://baike.baidu.com/link?url=5tEZW3BXc3fTsWEIAeX4vBcV2e8ONj0JKIi8e7aiXBFHxTWI3VuhVY8yatOpgsnNPKOLtiaZkVdeIez9m-kss0yk_6roftZWJMRlwoLqvkC

时间: 2024-10-12 08:06:57

认识GIT之入门的相关文章

Git使用入门读书心得

Git使用入门,包含了安装Git.查看Git文档.源代码和提交与获取这三个部分. Git软件包包含了大部分的Git命令,所以必须安装. 在Linux下可以直接使用man的命令直接查看指定命令的帮助文档.安装git-doe 后会安装git的文本格式和HTML格式的文档,所有的文档都存在/usr/share/doe/git-doc目录中. Git的功能很复杂,包括创建版本库.提交源代码.创建分支.向远程服务器上传源代码,从远程服务器获取源代码等技术.创建版本号:任何版本管理员都必须有一个版本库,所不

Android深度探索(卷1)HAL与驱动开发 第三章 Git使用入门 读书笔记

Android深度探索(卷1)HAL与驱动开发 第三章 Git使用入门 读书笔记     本章是对Git的一个概述. Linux是一个开源的系统.事实上,在Linux上许多软件都和底层程序以及内核驱动有关,然而Linux内核的版本非常多,如果每个版本上的软件都采用安装包的形式,则匹配这么多版本的安装包将十分庞大.所以有很多软件不是以二进制安装包的形式来安装和使用的.而是将源代码下载下来,并在每个用户自己的Linux中编译并安装,即使用make 和make install 命令.而Linus作为L

Android 深度探索(卷1)HAL 与驱动开发 第三章 GIT 使用入门 心得体会

Android 深度探索(卷1)HAL 与驱动开发 第三章 GIT 使用入门 心得体会 本章主要介绍GIT的学习,以及介绍GIT用于获取诸多开源项目的源代码. 在使用GIT之前我们首先对其安装,其安装命令: #apt-get  install git #apt-get  install git-doc git-svn git-gui gitk 在Linux 下可以直接使用man命令查看指定命令的帮助文档.这对我们初学者提供了很大的帮助. Git的功能很复杂,为此这章节举例为我们演示如何创建版本库

第三章 Git 使用入门

本章主要介绍的是Git使用入门,通过Git来进行源代码的管理,在使用Git之前需要安装Git,在很多的Linux系统中自带Git,也可以通过使用命令来安装Git,然后就是查看Git文档,在Linux下可以使用man命令查看制定命令的帮助文档.接着就是源代码的提交和获取,在本节中通过完整的例子来演示然后创建版本库.提交源代码.创建分支.像远程服务器上传源代码和从远程服务器获取代码.创建版本库需要使用git init,将文件提交到本地版本库使用git commit,创建本地分支使用git branc

Git的入门教程&lt;四&gt;

Git 的入门教程<四> 5> git分支的管理 git默认的有一个主分支叫做master,随着每次的提交,master主分支会形成一条线,而HEAD是指向当前的主分支master的,一般来说,我们将master分支作为向外发布的主分支,而开发的时候会新建一个分支或者好多分支,作为开发分支,等到开发分支完成,在一次性的想master主分支上合并,并进行发布. 5.1 git 分支的创建.删除.切换 git branch dev //创建分支 git checkout dev //切换分支

第三章 Git使用入门 心得体会

第三章 Git使用入门 心得体会     通过学习Android深度探索(卷1)HAL与驱动开发的第三章Git使用入门,首先我对Git有了一定了解git是一个版本控制系统.官方的解释是:版本控制(Revision control)是一种软件工程技巧.其次我掌握了Git的使用流程. 第一步:新建分支 首先,每次开发新功能,都应该新建一个单独的分支 # 获取主干最新代码 $ git checkout master $ git pull # 新建一个开发分支myfeature $ git checko

Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感

第三章 Git使用入门 使用Git的目的是减少各种版本的Linux的压缩大小,提供源代码在Linux上进行编译. 在这一个章节中,其实就是关键步骤的操作,虽然Git与我们学习的android没有很大的联系,但是在开发环境中也是必不可少的.通过学习这个章节,学习到了安装,查看,提取Git的方法.下面将详细讲述. 一.安装Git 可能大多数Linux上已经安装了Git,如果没有可以用下面的命令. Ubuntu10.04版本以下的有-core与原来的区分, 必须的:apt-get install gi

Git的入门教程&lt;二&gt;

Git 的入门教程<二> 4> git远程仓库的使用 我们在使用git进行代码管理的时候,协同办公,需要一个24小时不间断的隐形同事,此时,如果在局域网内,则直接开一台局域网内的24小时开机运行的机器就可以,但是如果在homework的时候就需要这个24小时运行的机器拥有独立的外网IP,这样消耗就比较大,幸好,网上有一个github,提供给我们一个免费的仓库,让我们可以在同事之前推送代码,下面介绍github的使用. 4.1 github的使用 首先 登录github的官网: https

Git的入门教程&lt;三&gt;

Git 的入门教程<三> 4> git远程仓库的使用 续之前的(http://blog.csdn.net/xuheazx/article/details/43229781) 4.2 git远程服务器的搭建 我目前的服务器版本: Linux hehe.xu 2.6.32-358.el6.i686 #1 SMP Thu Feb 21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux 因为是为了做教程,所以采用的是虚拟机来进行搭建git服务器. 4.2.1

Git的入门教程&lt;一&gt;

Git 的入门教程<一> 1> 为什么要用git git采用分布式框架,没有中央服务器,每人电脑上都一份单独的代码,单独的仓库,不需要联网,只是在有改动的时候,向对方进行推送一下,这样双方都能看到各自修改的代码了. 并且git相比于svn来说,比较安全,假如你的电脑硬盘坏掉了,此时在另一台电脑上只需从同事那里git pull 一下,就能拿到最新的代码. 那么同事之前如何进行协同办公的那? ps: git的好处当然不止这些,下面会列出. 2> git 的协同办公 一般来说,git需要