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. Gym - 101620I Intrinsic Interval

    题面在这里! 首先一个非常重要的性质是,两个好的区间的交依然是好的区间. 有了这个性质,我们只要找到包含某个区间的右端点最小的好区间,然后就是这个区间的答案拉. 至于找右端点最小的好区间就是一个扫描线 ...

  2. 【数论】【原根】【动态规划】【bitset】2017四川省赛 K.2017 Revenge

    题意: 给你n(不超过200w)个数,和一个数r,问你有多少种方案,使得你取出某个子集,能够让它们的乘积 mod 2017等于r. 2017有5这个原根,可以使用离散对数(指标)的思想把乘法转化成加法 ...

  3. 给lnmp一键包中的nginx安装openresty的lua扩展

    lnmp一键包(https://lnmp.org)本人在使用之后发现确实好用,能帮助我们快速搭建起lnmp.lamp和lnmpa的web生产环境,因此推荐大家可以多试试.但有的朋友可能需要使用open ...

  4. 必知必会JVM垃圾回收——对象搜索算法与回收算法

    垃圾回收(GC)是JVM的一大杀器,它使程序员可以更高效地专注于程序的开发设计,而不用过多地考虑对象的创建销毁等操作.但是这并不是说程序员不需要了解GC.GC只是Java编程中一项自动化工具,任何一个 ...

  5. subline text 常用插件

    C语言 Alignment   c Improved   cool format doc Blocker   cTags   AllAutoComplete       wakatime 精确统计你再 ...

  6. 面试DB优化

    高频全表扫描 0.5 表大小超过200M,且SQL高频执行(15分钟内超过500次),PIR 3级,表大小超过高速缓存的1.5%,报PIR 2级. 禁止使用select * 0.5 禁止使用selec ...

  7. 关于XUtils框架细解

    感谢关注xUitls的网友最近一段时间给予的热心反馈,xUtils近期做了很多细节优化之后,功能和api已经稳定. 1.9.6主要更新内容:Bitmap加载动画有时重复出现的问题修复,加载过程优化; ...

  8. iOS中 三种随机数方法详解

    ios 有如下三种随机数方法: //第一种 srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; //第二种 srandom(t ...

  9. [Android Memory] 内存分析工具 MAT 的使用

    转载自: http://blog.csdn.net/aaa2832/article/details/19419679 1 内存泄漏的排查方法 Dalvik Debug Monitor Server ( ...

  10. InternalError: (pymysql.err.InternalError) (1205, u'Lock wait timeout exceeded; try restarting transaction')

    在mysql innodb中使用事务,如果插入或者更新出错,一定要主动显式地执行rollback,否则可能产生不必要的锁而锁住其他的操作 我们在使用数据库的时候,可以使用contextlib,这样异常 ...