Git历险记(二)

转载自:http://www.infoq.com/cn/news/2011/01/git-adventures-install-config

各位同学,上回Git历险记(一)讲了一个 “hello Git” 的小故事。有的同学可能是玩过了其它分布式版本控制系统(DVCS),看完之后就触类旁通对Git就了然于胸了;也有的同学可能还如我当初入手Git一样,对它还是摸不着头脑。

从这一篇开始,我就将比较“啰嗦”的和大家一起从零开始经历Git使用的每一步,当然对我而言这也是一个重新认识Git的过程。

使用Git的第一步肯定是安装Git,因为在多数平台上Git是没有预装的。我平时主要的工作环境是windows和Linux(ubuntu),我想看这篇文章的同学多半也是在这两个平台下工作;下面我讲一下如何在这两个平台下安装和配置Git。

BTW:如果是苹果平台的用户的安装可以参看一下这里(12),配置和命令行的使用与windows、Linux(*nix)平台差别不大。

Linux (*nix) 平台

Linus开发Git的最初目的就是为了开发Linux内核服务的,自然它对Linux的平台支持也是最棒的。在Linux下安装Git大约有几种方法:

1. 从源代码开始(这种方法也适合于多数*nix平台)

Git官网下载页面下载它最新稳定版的源代码,就可以从源代码开始编译、安装:

$ wget http://kernel.org/pub/software/scm/git/git-1.7.3.5.tar.bz2
$ tar -xjvf git-1.7.3.5.tar.bz2
$ cd git-1.7.3.5
$ make prefix=/usr all ;# prefix设置你的Git安装目录
$ sudo make prefix=/usr install ;# 以root权限运行

 

为了编译Git的源代码,我们还需要一些库: expatcurl、 zlib 和 openssl; 除了expat 外,其它的库可能在你的机器上都安装了。

使用安装包管理器(apt 或 yum)

在 fedora 等系统下用yum :

$ yum install git-core

在debian, ubuntu等系统下用apt :

$ apt-get install git-core

有时候,你系统里的安装包管理器出现了问题,或是要安装Git的机器不能上网、没有编译器的话,你可以从下面的站点去下载 “.deb” 或 “.rpm”的安装包:

· RPM Packages

· Stable Debs

2. Windows平台

windows平台有两个模拟*nix like运行环境的工具:cygwinmsys;Git在cygwinmsys下都有相应的移植版本。我个人觉得msys平台下的msysGit最好用,现在我在windows下也是用的这个版本。

很多同学可能要问,现在windows下有那多Git用户,为什么Git不直接出一个windows native版。俺当年翻看了一下Git的源代码,它里面使用了大量的*nix平台的native api,而这些api在windows下是没有的,所以必须要用cygwin、msys这样的一个中间层来满足软件移植的要求。

下面我“啰嗦”一下如何在windows下安装msysGit。

下载

到它的下载页面去下载一个最新的完整安装包,笔者在撰写本文时下载的是这个

安装

安装的过程没有什么好说的,一般是开始安装后,一路的点击“下一步”。由于windows平台的换行符(CRLF)和Linux(*nix)平台的换行符(LF)不同,那么在windows下开发其它平台软件的朋友有一个地方要注意(见下图):

在这里一最好选“Checkout as-is, commit as-is”这个选项,这样,Git就不会修改你代码的换行符风格。

以前有个朋友因为选错了这个选项,以致他在windows平台下的一签出(checkout)其它平台的代码,就会显示”已修改“(modified),不过后来可能msysGit也认识到这个问题了,就把默认选项改成了这个选项。

BTW: 其实前面两项也是有用的,如果对windows和Linux(*nix)平台如何处理换行符很熟悉的话,也可以尝试一下前面两个选项:)

3. 配置Git

在Linux下和windows下配置Git的方法差不多,只是在Linux下,可以在命令行里直接使用git config进行配置, 而在windows下则要先打开“Git Bash”,进入msysGit命令行界面,再用git config命令进行相应的配置操作。

好了,前面安装好了Git,现在我们开始配置:

1. 第一个需要配置的就是用户的用户名和email,因为这些内容会出现在你的每一个提交(commit)里面的,像下面这样:

$ git log #我们用git log查看当前仓库的提交(commit)日志
commit 71948005382ff8e02dd8d5e8d2b4834428eece24
Author: author <author@corpmail.com>
Date: Thu Jan 20 12:58:05 2011 +0800
Project init

 

下面的这两行命令就是设置用户名和email:

$ git config --global user.name author #将用户名设为author
$ git config --global user.email author@corpmail.com #将用户邮箱设为author@corpmail.com

 

Git的配置信息分为全局和项目两种,上面命令中带了“--global"参数,这就意味是在进行全局配置,它会影响本机上的每个一个Git项目。

大家看到,上面我们用的是@corpmail(公司邮箱);但是有时候我们可能也参与了一些开源项目,那么就需要新的用户名和自己的私人邮箱,Git 可以为每个项目设定不同的配置信息。

2. 在命令行环境,进入Git项目所在目录,执行下面的命令:

$ git config user.name nickname#将用户名设为nickname
$ git config user.email nickname@gmail.com #将用户邮箱设为nickname@gmail.com

 

Git的设计哲学和Linux(*nix)一样,尽量的使用“文本化”(Textuality);它里面尽量用文本化的形式存储信息,对于配置信息也更是如此,用户的这些配置信息全部是存储在文本文件中。Git的全局配置文件是存放在"~/.gitconfig"(用户目录下的.gitconfig)文件中:

3. 我们用cat、head命令查看全局配置信息文件,并假设相关配置信息存储在文件的前3行(当然也有可能不在前3行,这里只是为了方便表示)

$ cat ~/.gitconfig | head -3
[user]
name = author
email = author@corpmail.com

 

而项目配置文件是存放在Git项目所在目录的".git/config"文件中,这里也像上面一样用cat、head命令查看一下:

$ cat .git/config | head -3
[user]
name = nickname
email = nickname@gmail.com

 

如果大家对于Git熟悉后,可以直修改”~/.gitconfig”,”.git/config”这两个文件进行配置。

Git里还有很多可以配置的地方,大家可以参考一下git config 和 定制git

这一篇写起来有点平淡无奇,但这是一个Git用户迈出的第一步。后面我还会有一系列的文章出来,都是我个人使用过程中的感悟。

有朋友问我:“为什么把文章叫作:‘Git历险记’”。这是因为在使用Git的历程中,我碰到过N多的问题;同时也觉得它有点小复杂。但是当这些问题解开后,就有时不得不赞叹它设计的巧妙之处。

如果大家对于我的文章有什么问题和建议,欢迎给我写邮件:

之前我建立了一个 git中文用户组 ,如果大家在使用Git的过程中碰到什么麻烦事,欢迎你在这个用户组里提问。

 

时间: 2024-09-08 09:41:25

Git历险记(二)的相关文章

Git历险记(四)

转载自:http://www.infoq.com/cn/news/2011/03/git-adventures-index-commit 我想如果看过<Git历险记>的前面三篇文章的朋友可能已经知道怎么用git add,git commit这两个命令了:知道它们一个是把文件暂存到索引中为下一次提交做准备,一个创建新的提交(commit).但是它们台前幕后的一些有趣的细节大家不一定知晓,请允许我一一道来. 1. Git 索引是一个在你的工作目录(working tree)和项目仓库间的暂存区域(

Git历险记(三)

转载自:http://www.infoq.com/cn/news/2011/02/git-adventures-local-repository 如果我们要把一个项目加入到Git的版本管理中,可以在项目所在的目录用git init命令建立一个空的本地仓库,然后再用git add命令把它们都加入到Git本地仓库的暂存区(stage or index)中,最后再用git commit命令提交到本地仓库里. 创建一个新的项目目录,并生成一些简单的文件内容: $ mkdir test_proj $ cd

Git历险记(五)

转载自:http://www.infoq.com/cn/news/2011/03/git-adventures-branch-merge 分支与合并 在Git里面我们可以创建不同的分支,来进行调试.发布.维护等不同工作,而互不干扰.下面我们还是来创建一个试验仓库,看一下Git分支运作的台前幕后: $rm -rf test_branch_proj $mkdir test_branch_proj $cd test_branch_proj $git init Initialized empty Git

Git团队协作使用规范 以及一些常用命令详解

Git 使用规范 特别提醒: 使用Git过程中,必须通过创建分支进行开发,坚决禁止在主干分支上直接开发.review的同事有责任检查其他同事是否遵循分支规范. 在Git中,默认是不会提交空目录的,如果想提交某个空目录到版本库中,需要在该目录下新建一个 .gitignore 的空白文件,就可以提交了 [代码回溯注意]把外部文件纳入到自己的 Git 分支来的时候一定要记得是先比对,确认所有修改都是自己修改的,然后再纳入.不然,容易出现代码回溯 [代码回溯注意]多人协作时,不要各自在自己的 Git 分

[网摘收藏]Ubuntu中版本控制Git的使用

Git 使用规范 特别提醒: 使用Git过程中,必须通过创建分支进行开发,坚决禁止在主干分支上直接开发.review的同事有责任检查其他同事是否遵循分支规范. 在Git中,默认是不会提交空目录的,如果想提交某个空目录到版本库中,需要在该目录下新建一个 .gitignore 的空白文件,就可以提交了 [代码回溯注意]把外部文件纳入到自己的 Git 分支来的时候一定要记得是先比对,确认所有修改都是自己修改的,然后再纳入.不然,容易出现代码回溯 [代码回溯注意]多人协作时,不要各自在自己的 Git 分

企业团队使用Git协同开发的一般流程

流程大纲 一.代码编写 1.从主分支(master)上创建开发分支(dev).  git branch dev 2.切换到dev.  git checkout dev 3.在dev上进行代码编写,并提交本地版本库. 注:一定不能直接在marster分支上修改代码 git add ./src ./res git commit -m "添加缓存模块" 这个时候有一些改变了没有提交的代码会变红色,在你 切换到master之前,应该暂存当前dev的开发一下到栈里. git stash 二.合并

java相关-eclipse向git 提交代码时 找不到自己的新增文件 怎么解决??

问题描述 eclipse向git 提交代码时 找不到自己的新增文件 怎么解决?? eclipse向git 提交代码时 找不到自己的新增文件 怎么解决?? 解决方案 git笔记之解决eclipse不能提交jar等文件的问题git 提交不了代码文件eclipse 提交代码到 git 解决方案二: 你git push成功了没.确实提交了对应的commit 解决方案三: 问题解决了就分享下,解决的办法,然后关闭问题吧

OpenMediaVault 搭建git,ssh无法连接问题

/************************************************************************* * OpenMediaVault 搭建git,ssh无法连接问题 * 说明: * 在使用OpenMediaVault搭建git服务器,ssh总是无法访问,最后找到了原因. * * 2016-7-8 深圳 南山平山村 曾剑锋 ***************************************************************

Git介绍

Git是一个分布式版本控制/软件配置管理软件,不需要中心仓库,是linux内核开发者Linus Torvalds为了更好地管理linux内核开发而创立的.Git分支与合并是比较简单,存储空间少,版本号都是生成的一个哈希值,比如: bbaf6fb5060b4875b18ff9ff637ce118256d6f20 一.Git客户端配置 git config --system core.fileMode false #禁止Git对文件权限的跟踪 git config --system core.quo