首页 > 代码库 > Git(二):Git的安装配置与基本使用
Git(二):Git的安装配置与基本使用
Git在Windows下的安装
在Git首页
http://git-scm.com/about可以下载适合你操作系统的最新版本的git,比如我当前使用的是Git-1.9.4-preview20140929.exe。
Git安装过程中,一路默认即可。直到这个界面
为了我们能够在windows的cmd中执行Git的操作,我们选择第二项。接下来再一路默认即可。安装完成后,可以在cmd中输入
git --version,检查当前git是否已正确安装。
设置Git
首先需要设置的是user.name和user.email这两个全局变量值。这两个值用来说明当前操作Git的操作人与其联系方式,在你修改代码后便会留下你的"足迹"。"全局"的意思是,你在这台计算机上使用任何Git版本库时,这些全局变量都是起作用的。
示例如下,实践中你得替换你自己的名字:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
通过命令git config,用户可以把此类信息提供给本地版本库,--global就是全局配置的意思了。
用下列命令可检查上述设置是否成功:
git config --global --list
除此之外,我们通常还想将命令行中的输出根据不同类型用不同的颜色显示出来。可以设置以下命令。
git config --global color.ui "always"
git config --global color.ui "always"
在命令行中键入:
git help <command>,用希望了解的具体命令名称替代<command>。Git将显示用户手册中该命令的描述。
创建第一个项目
在这里,我们以一个很小的HTML项目为例,使用Git来记录和跟踪这个项目,用以演示Git的基本操作。
创建版本库
在Git中创建版本库,首先要决定把项目源代码存放在哪里。本例中,要创建一个简单的HTML页面,所以给这个项目取名为mysite。首先创建一个同名目录"mysite",并进入到这个目录,然后输入命令git init。整个过程如下:
$ mkdir mysite
$ cd mysite
$ git init
命令git init会创建一个.git目录。这个目录用来存放版本库的全部元数据,mysite目录作为工作目录树,存放从版本库中检出的代码。
代码修改
现在该往版本库中添加一个文件了,现在我们创建一个名为index.html的文件,并添加标题文本"html world"。详细内容如下:
<html>
<body>
<h1>hello world</h1>
</body>
</html>
创建完一个简单的html文件后,我们需要让Git跟踪这个文件,要让它知道这个文件要分为两步走:首先使用git add命令把该文件添加到版本库的索引(index);然后使用git commit命令提交。
$ git add index.html
$ git commit -m "add in hello world HTML"
git commit命令创建一个提交记录。提交记录是存储在版本中的历史记录,每提交一次创建一个记录,并标出代码的演进。Git把提交者的姓名和邮件地址,以及提交留言,都添加到提交记录中。
前面命令中参数-m的作用是,告诉Git本次提交的留言为add in hello world HTML。对于任何版本控制系统,适当书写的提交留言都是极其重要的。它可以说明提交的原因。
运行git log可以看到这个提交相关的信息:
命令git log运行后输出的第一行显示提交名称,该名称是Git自动产生的SHA-1码。Git通过它来跟踪提交。Git使用该hash码可以保证每个提交的名称都是独一无二的,这在分布式系统中非常重要。
在项目中工作
下面学习怎样处理文件修改。
这个HTML文件里还没有<head>和<title>元素。下面为该文件添加这些元素:
<html>
<head>
<title>Hello World in Git</title>
</head>
<body>
<h1>hello world</h1>
</body>
</html>
修改完毕,Git可以检测到文件被修改。命令git status会显示工作目录树的状态,即当前的视图状态。
上面的输出结果表明Git检测到了修改,修改过的文件在changed but not updated下列出来,如果要提交,须要暂存(stage)修改。
暂存修改,以准备把修改提交到版本库。Git中有三个地方可以存放代码。第一个是工作目录树,编辑文件时可以直接在这里操作。第二个是索引(index),也就是暂存区(staging area)。暂存区是工作目录树和版本库之间的缓冲区。第三个,也就是最终的一个,是版本库。暂存区中存放的是准备提交到版本库中的修改。
回头看命令git add,它可以暂存对index.html刚刚做的修改,它跟前面章节中添加一个新文件时使用的是同一个命令,只不过,这次它告诉Git要跟踪的是一个新的修改而非新的文件。
暂存index.html后,执行命令
git status可以看到,输出信息中的标题从Changed but not updated变成了changes to be commited。如果打开了颜色开关,index.html这一行会由红色变为绿色。
接下来,可以使用git commit提交在暂存区中的修改。
$git commit -m "add <head> and <title> to index" \
-m "This allows for a more semantic document"
注意这里使用了两个-m 参数。Git可以接受任意多次提交留言的输入,每次另起一段。命令git log可以快速浏览提交留言。
这里引入了命令git log的一个新参数-1。可以通过改变该数字来限制命令git log输出的提交条目的个数。
理解并使用分支
分支是维护项目中并行历史记录的方法。在实际应用中,有两种分支比较有用:用来支持项目的不同发布版本的分支,以及用来支持一个特定功能的开发的分支(常被称为Topic Branch)。在本节中,介绍第一种。
当前mysite项目的代码可以发布了,与此同时,借助分支,可以开始下一版本的新功能的开发了。分支可以为要发布的代码保留一份拷贝,所以无须停止正在开发的工作。创建分支的命令是git branch,该命令需要两个参数:新分支名称和父分支名称。新创建的分支基于已经存在的父分支。
$ git branch RB_1.0 master
该命令从主分支(master branch)上创建一个叫RB_1.0的分支。主分支是Git的默认分支。分支名称中的RB表示发布分支(release branch)。该前缀可以让人快速分辨出哪些分支是发布分支。
现在来做一些新的改动。这些改动不影响准备发布的代码。下面给"bio"页面添加一个链接,在</body>之前增加如下代码:
<ul>
<li><a href="http://www.mamicode.com/bio.html">Biography</a></li>
</ul>
然后使用下面命令提交这些修改:
$ git commit -a -m "add bio.html"
-a参数告诉Git提交全部修改过的代码。
现在主分支上有最新的修改,而发布分支上还是原来的代码,请切换到发布分支,最发布前的最后修改。切换分支的命令是git checkout。
$ git checkout RB_1.0
在发布前做最后的修改:在<head>标记块中添加一些描述性的元标签。代码如下所示:
<head>
<title>Hello World in Git</title>
<meta name="description" content="hello world in Git"/>
</head>
保存并提交该修改:
$git commit -a -m "add meta info"
处理发布
现在准备发布1.0版本了,要给它打个标签。给Git中的代码打标签,意味着在版本库的历史中标记出特定的点,这样将来就容易找到相应版本的代码。因为是要做1.0版的发布,所以打一个名为"1.0"的标签:
$git tag 1.0 RB_1.0
以上的命令中的两个参数分别指明了标签的名称和希望打标签的点,它们分别是1.0和RB_1.0分支的末梢(所对应的版本,或者说所对应的提交)。用不带参数的命令git tag可以查看版本库中的标签列表。目前只显示了刚刚打过的标签1.0:
$git tag
1.0
现在要把RB_1.0分支上所做的修改合并到主分支上来。变基命令git rebase可以完成这项工作。变基是把一条分支上的修改在另一条分支的末梢重现。现在的版本树如(a)图所示,变基以后的版本树如(b)图所示。
首先使用git checkout切换回主分支。
$ git checkout master
接着运行命令git rebase,后面跟着一个参数:希望变基到哪条分支的末梢,就使用哪条分支名称做参数。
$ git rebase RB_1.0
现在的版本库就如(b)图所示了。
最后,作为整理工作的一部分,删除发布分支RB_1.0。这看上去好像很危险,不过不用担心,刚刚打的标签已经记录下了那个时候它的状态了(只要标签还在,从标签到版本树起点的一连串提交记录就都在)。这时删除该分支只是删除了分支的名字,并不会删除分支上的任何实际内容。
使用git branch -d 可以删除分支:
$ git branch -d RB_1.0
Deleted branch RB_1.0.
如果没有发布分支,将来如何给"1.0.x"分支打补丁呢?很简单,只须从打标签的地方再创建一条分支即可。这次依然使用git branch命令,当时命令的最后一个参数是新分支的父分支名称,现在只须把父分支名称改成发布标签名即可。命令如下:
$ git branch RB_1.0.1 1.0
$ git checkout RB_1.0.1
Switched to branch "RB_1.0.1"
使用Git做的最后一件事是,为代码发布创建归档文件。通常情况下,将标签对应的版本内容打包成一个tar包或zip包就够了。一般在项目中打包操作可以使用maven执行,所以这里就不介绍使用Git 的archive打包了。
克隆远程版本库
到目前为止,我们一直在介绍本地版本库的操作,还没有涉及到远程版本库。除了前面的功能外,Git也可以与远程版本库打交道,以分享本地的工作成果,或者复制其他的版本库到本地。
要与远程版本库打交道,首先要用命令git clone克隆远程版本库,它会在本地创建远程版本库的完整拷贝。
在GitHub(一个提供Git版本库托管服务的网站)上共享本书中mysite项目的全部拷贝,可以使用git clone来把它们克隆到本地。
$ git clone git://github.com/tswicegood/mysite.git mysite-remote
命令git clone带有两个参数:远程版本库的位置和存放该版本库的本地目录。第二个参数是可选的,但是在我的本地已经有wysite目录,所以需要提供第二个参数指定远程版本库拷贝的目标目录。在后面的章节还会介绍更多的参数,但是大多数情况下这两个参数就足够了。在后面的章节还会介绍Git把本地改动推入到远程版本库,以及从远程版本库取来改动。
Git(二):Git的安装配置与基本使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。