git 是一个开源的分布式版本控件系统,用于敏捷高效地处理任何或小或大的项目。

Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

Git 与常用 的版本控制工具CVS,Subversion等不同,它采用了分布式的版本库的方式,不必服务器软件支持。

Git与SVN区别

Git不仅仅是个版本系统。它也是个内容管理系统CMS,工作管理系统等。

如果你是一个具有使用SVN背景的人,你需要做一定的思维转换。来适应Git提供的一些概念和我特征。

Git与SVN区别点:

1,GIT是分布式的,SVN不是,这是GIT和其他非分布式的版本控制系统的,例如SVN,CVS等最核心的区别。

2,GIT把内容按元数据方式存储,它svn是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

3,GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库的另外的一个目录。

4,GIT没有一个全局的版本号,而SVN有:目录为止这是跟SVN相比GIT缺少的最大一个特征。

5,GIT的内容完整性优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git配置

git 提供了一个叫做git config 的工具,专门用来配置或读取相应的工作环境变量。

这些环境变量,决定了Git在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

./etc/gitconfig文件:系统中的对有的用户都普遍适用的配置。若使用git config时用--system选项,读写的就是这个文件。

。~/.config文件:用户目录下的配置文件只适用于该用户。若使用git config时用 --global选项,读写的就是这个文件。

当前项目的git目录的配置文件(也就是工作目录下的.git/config文件):这里的配置仅仅针对当前的项目有效。每一个级别的配置会覆盖上层的相同配置,所以.git/config里的配置会覆盖/etc/gitconfig中的相同的变量

在window系统上,git会找寻用户主目录下的.gitconfig文件。主目录即$HOME变量的指定的目录,一般都是C:\Documetns and Settings\$USER.

此外,Git还会尝试寻找/etc/gitconfig文件,只不过看当初Git装在什么目录,就以此作为目录来定位。

用户信息

配置个人的用户称和电子邮件地址:

$ git config --gloabal user.name "test"

$ git config --global user.email test@163.com

如果用了 --global选项,那么更改的配置文件就是位于你用户主目录的那个,以后你所有的项目都会默认使用这里的配置的用户信息。如果要在某个特定的项目中使用其他的名字或电邮,只要去掉--glabal选项重新配置即可,新的设定保存在当前的.git/config文件里。

文本编辑器

设置Git默认使用的文本编辑器,一般可能会是Vi或者Vim。如果你有其他的偏好,比如Emacs的话,可以重新设置:

$git config --global core.editor emacs

差异分析工具

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用vimdiff 的话:

$ git config --global merge.tool vimdiff

git 可以理解kdiff3,thdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和opendiff等合并工具输出信息。

当前,你可以指定使用自己开发的工具,具体怎么做可以参阅其他的资料。

查看配置信息

要检查已有的配置信息,可以使用git config --list命令:

$git config --list

user.name=test

user.email=test@gmail.com

color.status=auto

color.branch=auto

color.interactive=auto

color.diff=auto

有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如/etc/gitconfig和~/.gitconfig),不过最终Git实际采用的是最后一个。

也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

$git config user.name

Test

git 教程一的更多相关文章

  1. CRL快速开发框架系列教程一(Code First数据表不需再关心)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  2. NGUI系列教程一

    NGUI是Unity的一个插件,使用它来制作你的游戏UI必定将事半功倍.为什么这么说呢?首先我们说说GUI与NGUI的区别,GUI是Unity自带的绘制界面工具,它的成像原理是基于表层的,所以执行效率 ...

  3. Quartz教程一:使用quartz

    原文链接 | 译文链接 | 翻译:nkcoder | 校对:方腾飞 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处 ...

  4. Git: 教你如何在Commit时有话可说

    Git: 教你如何在Commit时有话可说   不知道大家有没有观察过那些在Github上Star数位居前列的项目,它们无一例外的都拥有完善的文档体系和高覆盖的测试用例.要做到完善没有规范肯定是不行的 ...

  5. redis学习教程一《Redis的安装和配置》

    redis学习教程一<Redis的安装和配置> Redis的优点 以下是Redis的一些优点. 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执 ...

  6. Cobalt Strike使用教程一

    Cobalt Strike使用教程一     0x00 简介 Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器.自3.0以后已经不在使用Metasploit框架而作为 ...

  7. 【学习总结】Git学习-参考廖雪峰老师教程一-Git简介

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  8. Git使用教程一

    Git是一个分布式版本控制系统,简单的说其就是一个软件,用于记录一个或若 干文件内容变化,以便将来查阅特定版本修订情况的软件. Github (https://www.github.com) 是-一个 ...

  9. Webpack教程一

    比较 如果你熟悉原来一系列的构建工具,grunt或者gulp之类的,这里有一篇webpack和他们比较的文章可以读一读. Webpack Compared 安装 先装好node和npm,因为webpa ...

随机推荐

  1. 20162307 实验三 敏捷开发与XP实践

    实验三 <敏捷开发与XP实践> 北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级:1623 姓名:张韵琪 学号:20162307 指导教师:娄佳鹏老师.王志强 ...

  2. idea小问题解决方法系列

    1)有些java文件上显示“红色小j”,如图所示 ,意思是“不可编译”,原因是Module未导入或者没有标记Module下"Sources"一栏src文件夹为Sources.(ht ...

  3. (转)Servlet

    1.  Servlet和GCI的区别? 答:Servlet是基于Java编写的,处于服务器进程中,它能够通过多线程方式运行service()方法,一个实例可以服务于多个请求,而且一般不会销毁:而CGI ...

  4. Hiho : 欧拉路径

    欧拉路径 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其实是一块一块骨牌. 主角继续往前走,面 ...

  5. MYSQL复习笔记13-触发器trigger

    Date: 20140305Auth: Jin 一.概念1.基本概念触发器是一个被指定关联到一个表的数据对象,触发器是不需要调用的,当对一个表的特别事件出现时,它就被激活.触发器的代码也是由SQL语句 ...

  6. rdlc报表集锦

    rdlc报表动态生成实例 http://blog.csdn.net/fwj380891124/article/details/8803844  rdlc报表动态生成公共类 http://blog.cs ...

  7. Inno Setup入门(二十)——Inno Setup类参考(6)

    http://379910987.blog.163.com/blog/static/3352379720112515819485/ 存储框 存储框也是典型的窗口可视化组件,同编辑框类似,可以输入.显示 ...

  8. python2和python3输入输出相关

    python3: #coding=utf-8 a = input("请输入你的名字:") print("%s"%a) #输出没有一点问题,a就是字符串(或者数字 ...

  9. 永远不要去B网(Bittrex.com)

    永远不要去Bittrex.com,没见过这么垃圾的服务! 注册之后基本资料就不能修改了,结果不能提现,充值却是可以充值,就跟今年初禁比特币时的垃圾火币网一样,只进不出,去他奶奶的! 随后网站提示可以高 ...

  10. Hibernate3的jar包

    一.hibernate3包说明 说明: Hibernate 软件包中的Hibernate3.jar 是我们需要使用的Hibernate 工具,其他引用的 Jar 文件位于lib 子目录下,Hibern ...