`
jag522
  • 浏览: 33872 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Git快速入门

    博客分类:
  • Git
Git 
阅读更多

 版本控制系统可以分为集中式(CVCS, Centralized Version Control System, 如CVSSubversion)和分布式(DVCS, Distributed Version Control System,如Git)版本控制系统。

 

 传统的集中式版本控制系统,本地只保存代码库的一个版本拷贝。 所有历史版本都保存在服务器。GIT 与之最大的不同是,本地不仅保存一个快照,而且保存着整个代码库(repository)。因此它可以“离线”工作。

 

GIT 使用 SHA-1 哈希码(40个字符)来标识提交,同时保证本次提交后整体(一个快照)的完整性。 

 文件状态分为:未跟踪 (untracked) 和已跟踪 (tracked),已跟踪又分为三种状态: 已暂存(staged),已修改(modified),已提交(committed)

 

一般过程如下:

 1) 新建文件,该文件状态为“未跟踪”,位于工作区

 2) 用 git add a.txt  加入该文件,状态变为已跟踪的“已暂存”,位于暂存区

 3) 用 git commit a.txt -m "ha"  提交该文件,状态变为“已提交”,位于代码库(repository )。

 

当文件处于已跟踪的状态下,

 4编辑该文件并保存,状态变为“已修改”,位于工作区

 5 重复步骤23,可提交代码至代码库。

 

 我们创建一个测试项目来感受下如何通过命令行,使用Git对文件进行版本控制。

  

创建版本库

在多数版本控制系统,例如Subversion,工作目录与版本库是分开存放的。而在Git中,版本库(.git目录)是与工作目录树(Working Trees)并排放在同一个目录中的。

 

Git中创建版本库,首先要决定把项目源代码存放在哪里。本例中,要创建一个简单的HTML页面,所以给这个项目取名为test。首先创建一个同名目录“test”,并进入到这个目录,然后输入命令git init。整个过程如下:

 D:\test>git init

 Initialized empty Git repository in D:/test/.git/

 

创建完成。从现在开始,这个Git版本库就可以用来记录和跟踪该项目的代码了。

  

添加初始文件

 前面的操作已经创建了一个空版本库,现在该往里添加文件了。现在我们创建一个名为index.html的文件,并添加标题文本“Hello world”。详细内容如下:

 <html>

 <body>

 <h1>Hello World!</h1>

 </body>

 </html>

 

创建了一个简单的HTML文件后,就可以开始跟踪版本了。我们会向这个文件不断添加更多的内容。要想让Git跟踪这个文件,须先让它知道这个文件要分两步走:首先使用git add命令把该文件添加到版本库的索引(index);然后使用git commit命令提交。

 

D:\test>git add index.html

 D:\test>git commit -m "inital version"

 [master (root-commit) 96707ef] inital version

 1 file changed, 5 insertions(+)

 create mode 100644 index.html

 

文件或文件列表可以作为git add命令的参数。

 git commit命令创建一个提交记录。提交记录是存储在版本中的历史记录,每提交一次创建一个记录,并标记出代码的演进。Git把提交者的姓名和邮件地址,以及提交留言,都添加到提交记录中。

 

前面命令中参数-m的作用是,告诉Git本次提交的注释为initial version。对于任何版本控制系统,适当书写的提交留言都是极其重要的。它可以说明提交的原因:新添加的文件是做什么用的?修改那行代码的原因是什么?

 

现在我们已经提交了一个文件到版本库中。运行命令git log可以看到这个提交相关的信息:

D:\test>git log

commit 96707ef87920925b664ea3cafc5c4926bee20de8

Author: jag <jag@gmail.com>

Date:   Fri Sep 19 09:23:47 2014 +0800 

     inital version

 

命令git log运行后输出的第一行显示提交名称,该名称是Git自动产生的SHA-1码。Git通过它来跟踪提交。Git使用该哈希码可以保证每个提交的名称都是独一无二的。这在分布式的环境中非常重要。第二行是提交者的信息。第三行是提交日期。第四行是提交的注释。

 

用命令git commit显示的七位字符来表示一个提交,通常已经足够了,没有必要使用完整的40位哈希码。但是命令git log将显示完整的40位哈希码。

 

修改文件

下面开始学习怎样处理文件修改。

 刚才的HTML文件里还没有<head><title>元素。下面为该文件添加这些元素:

 <html>

 <head>

 <title>Hello World in Git</title>

 </head>        

 <body>

 <h1>Hello World!</h1>

 </body>

 </html>

 

修改完毕,Git可以检测到文件被修改。命令git status会显示工作目录树的状态,即当前的视图状态。Git中的工作目录树与SubversionCVS中的工作拷贝差不多是一个概念。

 

D:\test>git status

On branch master

Changes not staged for commit:

 (use "git add <file>..." to update what will be committed)

  (use "git checkout -- <file>..." to discard changes in working directory)

       modified:   index.html

 no changes added to commit (use "git add" and/or "git commit -a")

 

 上面的输出结果表明Git检测到了修改,但还不知道如何处理它们。修改过的文件在Changed but not updated下列出来,如果要提交,须要暂存(stage)修改。

 

暂存修改,以准备把修改提交到版本库。Git中有三个地方可以存放代码。第一个地方是工作目录树,编辑文件时可以直接在这里操作。第二个是索引(index),也就是暂存区(staging area)。暂存区是工作目录树和版本库之间的缓冲区。第三个是版本库。暂存区中存放的是准备提交到版本库中的修改。

 

 回头看命令git add,它可以暂存对index.html刚刚做的修改。它跟前面添加一个新文件时使用的是同一个命令,只不过,这次它告诉Git要跟踪的是一个新的修改而非新的文件。

 

D:\test>git add index.html

D:\test>git status

On branch master

Changes to be committed:

 (use "git reset HEAD <file>..." to unstage)

        modified:   index.html

 

暂存修改过的index.html后,执行命令git status可以看到,输出信息中的标题从Changed but not updated变成了Changes to be committed。如果打开颜色开关,index.html这一行会由红色变为绿色。

 

使用命令git commit时,不要忘记使用带-m的参数,并在参数后面加上提交注释,以解释修改的原因。如下所示:

 D:\test>git commit -m "add <head> and <title> to index"

 [master 12e743e] add <head> and <title> to index

 1 file changed, 3 insertions(+)

 

命令git log可以快速浏览提交的注释。

 D:\test>git log

 commit 12e743e19386b25ed22d8dc8ac49771233774e26

 Author: jag <jag@gmail.com>

 Date:   Fri Sep 19 09:57:54 2014 +0800

    add <head> and <title> to index

 

commit 96707ef87920925b664ea3cafc5c4926bee20de8

Author: jag <jag@gmail.com>

Date:   Fri Sep 19 09:23:47 2014 +0800

    inital version

 

获取历史文件 

如果要获取某个老版本的文件,则可以使用git checkout命令,并指定文件名,如下所示:

D:\test>git checkout ed941ed97975757490256fb2b956c27d900e1059 index.html

 

一旦熟悉了以上命令后,我们使用GUI进行可视化操作时也将信手拈来,如下图所示:

 

eclipse中也有相应的插件,如下图所示:

 

到目前为止,我们已经感受了如何使用Git,包括添加新文件、修改文件、查看版本库的历史记录等。

 

参考资料: 

《版本控制之道:使用Git

http://blog.sina.com.cn/s/blog_66e177dd0100j4rk.html

http://wangcong.org/blog/archives/283

  • 大小: 84.2 KB
  • 大小: 9.2 KB
0
0
分享到:
评论

相关推荐

    Git快速入门学习.pdf

    Git提供了很多命令,如git init初始化仓库、git add添加文件到暂存区、git commit将暂存区的更改提交到仓库、git push把本地更改推送到远程仓库,以及git pull从远程仓库获取并合并到本地。 除了基本的命令之外,...

    git快速入门

    首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度; 其次,本教程实用性超强,边学边练,一点也不觉得枯燥。而且,你所学的Git命令是“充分且必要”的,掌握了这些东西,...

    git快速入门.pptx

    "git快速入门" Git是由 Linux 创始人 Linus Torvalds 编写的分布式版本控制系统。它可以帮助开发者追踪代码的变化,协作开发和版本管理。下面是 Git 快速入门的相关知识点: 一、Git 工具安装 要使用 Git,首先...

    git快速入门.zip

    本教程“git快速入门”旨在帮助初学者快速掌握Git的基本概念、命令及操作流程,从而能够高效地利用Git进行软件开发。 Git的核心概念主要包括仓库(Repository)、分支(Branch)、提交(Commit)、合并(Merge)和...

    git快速入门以及常见问题解决

    git快速入门以及常见问题解决

    新手git快速入门-----整理廖雪峰git基础的git实战学习

    新手git快速入门-----整理廖雪峰git基础的git实战学习,包含楼主学习过程中碰到的问题。

    git快速入门教程 带安装包

    此资源不仅包括详细的Git入门教程,还包含安装包和必要的配置指南。 教程部分通过实际场景引导用户了解Git的核心概念和常见操作,例如如何创建和管理本地仓库、版本控制、分支操作、以及与远程仓库的交互。讲义还...

    Git快速入门.md

    Git的入门文章,从git的命令开始。接下来的时间将陆续连载关于git的相关文章。这一篇文章从win上安装git开始,到一些常用命令的使用,将git命令操作一一进行讲解

    Git 快速入门和最佳实践

    Git是一款免费、开源的分布式版本控制系统,它能够敏捷高效地处理各种规模的项目版本控制问题。版本控制包括多人协作、历史记录的维护、问题追溯等功能,它分为集中式版本控制系统和分布式版本控制系统两大类。集中...

    Git快速入门.pdf

    介绍Git的日常使用,包括基本操作、分支操作、提交数据、推送数据到远程仓库、从远程仓库获取、标签。tex排版精美

    GIT入门简单教程.docx

    Git 快速入门 1. 安装 Git 首先,你需要在你的计算机上安装 Git。大多数 Linux 发行版都已经自带了 Git。如果你使用的是 Windows 或 macOS,可以访问 Git 官方网站 下载适合你操作系统的版本。 2. 配置 Git 在开始...

    Git教程 从入门到精通

    ### Git教程从入门到精通——知识点详解 #### 一、Git简介 - **Git是什么**:Git是一款目前世界上最先进的分布式版本控制系统。它被设计用于高效处理从小型到大型项目的版本控制,尤其适合软件开发项目。 - **Git...

    《git基础知识》PPT课件.ppt

    Git 基础知识 Git 是一个分布式版本控制系统,它不同于集中式版本控制系统 SVN。Git 的优势在于上传下载速度快、异地协同工作、现场版本控制、更好的提交列表、更好的差异比较、工作进度保存、作为 SVN 前端实现...

    Git实战入门.docx

    - 可以从Git官方网站下载,或者在中国软件下载网站CSDN上找到快速下载链接,分别对应不同操作系统(MacOS、Windows、Linux/Unix)的32位和64位版本。 5. **Git的三种状态**: - **已提交**(committed):文件已...

    Git 使用教程

    推荐Git的教程,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

    Git快速入门视频课程

    本课程从零开始,以通俗易懂的方式讲解Git技术,手把手教你掌握每一个知识点。 课程内容包括:版本控制系统、Git简介、Git使用、常用命令、远程仓库、分支Branch、静态页面托管、在IDEA中使用Git 教学全程采用笔记...

    GIT使用入门.pdf

    ### Git使用入门知识点详解 #### 一、Git简介与应用场景 **Git** 是一款开源的分布式版本控制系统,用于跟踪在软件开发过程中对文件所做的更改。它最初由Linus Torvalds于2005年创建,目的是为了更高效地管理Linux...

    03. 上手 1: 新公司用 Git 管理代码, 怎么快速上手?1

    以下是一份简明的 Git 快速入门指南,帮助你迅速上手。 首先,确保在你的电脑上安装了 Git。你可以从官方网站下载,或者通过包管理器如 Homebrew 或 apt 进行安装。安装完成后,可以通过命令行终端(如 macOS 的 ...

Global site tag (gtag.js) - Google Analytics