`
toilet22
  • 浏览: 2267 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Git入门教程_02_Git基本操作

git 
阅读更多

       通过上一篇文章,我们已经对Git的基本原理有了一个大致的了解:通过将新的文件和修改进行快照并提交保存到Git目录中,Git就能够永久地记住和保管我们的文件。因此,Git最核心的操作就是管理文件的状态。当然,Git也提供了很多辅助性的操作,比如查看当前状态、查看文件差异、查看历史记录等等。
      以上这些操作,就是本文要讲述的内容,但是首先,我们必须获取一个Git仓库。


1,取得项目的Git仓库

      通常情况下有两种获得Git仓库的方式,一种是从自己已有的目录下创建新的Git仓库,一种是从已有的仓库中克隆出新的镜像仓库。
    1.1,从工作目录中新建仓库
         $ git init
         执行该命令后,当前工作目录下会出现一个名为.git的目录,这就是之前说的Git目录,它存储了所有Git需要的数据和资源。
         此时,我们还未将任何文件添加到Git的跟踪清单中。
    1.2,从已有仓库中克隆
         $ git clone [url] [name]
         执行该命令会在当前目录下创建一个以该项目名为名称的目录(如果指定了name,则为name),其中包含一个.git目录。
         然后从Git目录下提取出当前最新的版本的所有文件,作为当前的工作目录。也就是说,此时,当前工作目录下所有的文件都是被Git管理的。


2,记录每次更新(管理文件的状态)

    Git的记录更新操作,其核心就在于上一篇文章中所说的文件的4个状态和3个工作区域。所谓的记录更新就是将工作目录中:1,未跟踪的文件(新建的文件) 和 2,已修改的文件 生成快照,并保存到Git目录中去(这些快照通常要先经过暂存区域,但也可以不经过)。
    当然,必不可少的,我们也需要进行一些撤销的操作,比如将文件从暂存区中撤回,取消对文件的修改等。
    下面就来具体说说这些操作的实现。

   2.1,将文件快照送到暂存区:git add
        核心功能:
            1,将新文件(未跟踪)添加到跟踪清单中,并生成快照,保存到暂存区域中;
            2,将已修改的文件生成快照,保存到暂存区域中。
        基本用法:
            1,git add filename 将该文件添加到暂存区域,其中filename支持通配符。
            2,git add -A 将所有未跟踪的和已修改的文件(Git将忽略掉.gitignore文件中指定的文件,下文中会介绍)添加到暂存区域。

    2.2,提交暂存区中的快照到Git目录:git commit
        核心功能:
            1,将当前暂存区中的快照保存到Git目录中。注意:只是将暂存区中的快照保存,如果同一个文件在git add 之后,又做了修改,那么commit只会保存 git add 命令添加到暂存区中的快照,新的修改不会得到保存,该文件将处于已修改状态。
        基本用法:
            1,git commit 会进入当前终端默认的编辑器中编辑对本次提交的说明;可以使用git config --global core.editor命令设置使用什么编辑软件。
            2,git commit -m ‘提交说明’ 直接在字符串中对本次提交进行说明。
            3,git commit -a 不经过暂存区域,直接将所有以跟踪过的文件直接提交,而跳过 git add 步骤。

    2.3,撤销操作
        Git的操作虽然简单,但是撤销操作还是非常常用的。
        1,修改最后一次提交:git commit --amend
        有时候,我们提交完了才发现漏了几个文件,或是提交信息写错了,就可以用git commit --amend命令重新提交,该提交会覆盖掉此前的一次提交。
        2,取消已经暂存的文件:git reset HEAD <filename>
        有时候,我们错误的将一个文件加到了暂存区域,比如我们需要将两个文件分作两次提交,却一起送到了暂存区。此时,我们就需要将相关的文件从暂存区移除,git reset HEAD <filename> 命令就可以取消 filename 文件的暂存。
        3,取消对文件的修改:git checkout -- <filename>
        有时候,我们想要取消对某个文件的修改,这时候就可以用git checkout -- <filename> 命令。注意,这条命令是不可逆的!因为修改的内容从未提交过,因此对于Git而言,它就像没有存在过一样。


3,辅助性操作

      上文中我们介绍了Git下管理文件状态的3个核心操作,实际上,为了能够更好的管理文件状态,Git提供了一些能够辅助性的命令,接下来就一一介绍。

    3.1,忽略不想跟踪的文件:配置.gitignore文件
        核心功能:
            上文提到,可以通过 git add -A 命令将所有未跟踪的和已修改的文件添加到暂存区,但是工程下总有很多文件时不需要也不应该用Git跟踪的,比如IDE自动生成的文件,log文件,一些编译的中间结果,等等。此时,需要在 .gitignore 文件中进行配置,使这样的文件被忽略。
        基本格式:
            1,自动忽略空行,以及#开头的注释
            2,使用标准的glob模式匹配
               *匹配任意字符串;
               [abc]匹配方括号中的任意一个字符
               [a-f]匹配a到f范围内的任意字符
               ?匹配一个任意字符;
            3,匹配模式最后跟反斜杠(/)说明要忽略的是文件夹
            4,可以在指定模式的前面加上惊叹号(!)来取反,意为只保留指定模式


    3.2,查看文件状态:git status
        核心功能:
            1,显示当前是否存在:a,未跟踪的文件(Untracked files);b,已修改的文件(Changes not staged for commit);c,在暂存区中待提交的文件(Changes to be committed)。
            2,注意,一个文件可能同时出现在已修改的文件和暂存区的文件中,即当一个文件已经被git add添加到暂存区后又做了修改时,就会出现此情况。

    3.3,查看文件变化的内容:git diff
        核心功能:
            1,查看最近一次快照和当前还未暂存的文件之间的差异
            2,查看当前暂存的快照和上一次提交的快照之间的差异
        基本用法
            1,git diff 查看未暂存的变化
            2,git diff --cached 查看已暂存的变化

    3.4,查看提交的历史:git log
        核心功能:
            1,按照需求查看所有的提交的历史
        基本用法:
            1,Git提供了很多选项,基本有以下这些

       
       

4,文件管理命令

      Git中还提供了一些用来管理文件的命令,如删除文件和移动文件(重命名)等。
   
    4.1,移除文件:git rm
         核心功能:
             1,当要从Git目录中移除某个文件
             2,操作失误将原本不需要的文件添加到了跟踪清单中,想要将它们从中去掉
         基本用法:
             1,git rm filename:直接删除该文件,并从文件跟踪清单中移除
             2,git rm --cached filename:在工作目录中保留,但是从文件跟踪清单中删除。
         注意:
             如果只是普通地删除掉某个文件,并不会将它从Git的跟踪清单中去除。

    4.2,移动文件:git mv
         基本用法:
             1,git mv file_from file_to:移动文件

    以上就是 Git 中一些最常用最基本的操作,了解了这些操作就可以开始在本地管理自己的代码了!但是,如果需要对代码进行更好的备份和分享,或者想在团队成员之间进行协作,就离不开远程仓库,因此下一篇将会介绍一下远程仓库的使用。


参考:
Git官方教程:http://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80
  • 大小: 23.9 KB
  • 大小: 7.8 KB
1
0
分享到:
评论

相关推荐

    GIT教程_git入门_git_

    本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度;

    GitLab操作指南_git学习指南_git入门_git_gitlab_

    GitLab操作指南.pptx文件可能包含了以下内容:Git基础概念和命令详解,GitLab注册与项目创建,SSH密钥配置,仓库的克隆与推送,分支管理,Merge Request的使用,CI/CD的基本配置,以及如何利用GitLab进行团队协作等...

    git中文入门教程_离线html.rar

    Git中文入门教程旨在帮助初学者理解并掌握Git的基本概念、...本教程提供的"start_html_git入门教程.htm"将详细介绍这些概念,帮助你快速上手Git。同时,www.yiidian.com可能提供更多的在线学习资源,辅助你的学习过程。

    猴子都能懂的Git入门 HTML整站离线 2017-07

    "猴子都能懂的Git入门"这个标题暗示了这是一个适合初学者的Git教程,旨在用易于理解的方式介绍Git的基础知识。下面将详细阐述Git的核心概念和常用操作。 1. **Git基础概念**: - **仓库(Repository)**:Git中的...

    Git教程 从入门到精通

    通过本教程的学习,您不仅能够掌握Git的基本操作,还能深入了解如何有效地管理和维护版本库,实现团队协作开发。Git的强大功能和灵活性使其成为现代软件开发不可或缺的一部分。希望您能够通过实践不断加深对Git的...

    git_real_slides

    接着,Git的基本操作包括初始化仓库(`git init`)、克隆远程仓库(`git clone`)、添加文件到暂存区(`git add`)、提交更改(`git commit`)以及查看状态(`git status`)。这些命令是日常开发中最常用的,帮助...

    猴子都能懂的Git入门-整站

    2. Git基本操作:包括初始化仓库、添加文件、提交更改、查看状态和历史记录。 3. 分支管理:介绍如何创建、切换和合并分支,理解分支在开发中的重要作用。 4. 远程仓库:讲解如何与GitHub、GitLab等远程服务进行交互...

    猴子都能懂的GIT入门

    "猴子都能懂的GIT入门"这个主题,旨在让初学者,甚至是对技术不太熟悉的人都能轻松理解Git的基本概念和操作。Git的核心价值在于它能够跟踪代码的历史版本,允许团队成员在不影响主分支的情况下各自开发,然后通过...

    Git入门教程1

    这只是Git入门的第一步,后续的章节将会介绍更多Git的基本操作,如克隆(`git-clone`)、添加文件(`git-add`)、查看状态(`git-status`)、提交(`git-commit`)以及分支管理和合并等。想要精通Git,需要不断实践...

    猴子都能懂的GIT入门.pdf

    将网页版的猴子都能懂的GIT(https://backlog.com/git-tutorial/cn/)转换成PDF格式,并且已添加书签,感谢这个作者编写的教程

    git入门教程.docx

    Git 入门教程 Git 是目前世界上最先进的分布式版本控制系统,由 Linus 在 2005 年创建。 Git 的诞生离不开 Linux 的发展,Linux 系统不断发展,已经成为最大的服务器系统软件了。 Linux 的代码是如何管理的呢?在 ...

    03Git入门Git初始设定 git init

    03★Git入门★Git初始设定_git_init

    git入门教程

    本篇文章将为初学者提供一个简明的Git入门教程,涵盖了Git与SVN的区别、Git分支与流程、以及一些基础命令的使用。 ### Git与SVN的区别 首先,我们需要了解Git与另一款常用的集中式版本控制系统SVN的主要差异。SVN...

    Git权威指南_git_

    本书《Git权威指南》深入浅出地介绍了Git的核心概念、基本操作以及高级特性,旨在帮助读者全面掌握这一重要的版本控制工具。 Git的核心思想是内容寻址存储,这意味着每个文件在Git中的身份都是由其内容的哈希值决定...

    Git入门教程.docx

    这篇文档是一个Git入门教程,旨在帮助初学者理解基本的Git概念和常用命令。 首先,Git的`branch`管理是其核心特性之一。分支允许开发人员在不同的开发路径上独立工作,而不会相互干扰。创建新分支(`git branch ...

    idea使用教程2017-06-01.rar_IDEA教程_git教程_maven idea_使用手册

    《IDEA教程:从入门到精通》 IntelliJ IDEA,简称IDEA,是一款由JetBrains公司开发的Java集成开发环境,以其强大的代码自动补全、重构功能和友好的界面深受开发者喜爱。本教程旨在帮助你全面掌握IDEA的使用,从安装...

    Git入门特别教程

    本文档旨在为初学者提供一个简洁明了的Git入门指南,帮助理解Git的核心概念及基本操作流程。 #### 为什么选择Git? - **分布式特性**:Git是一种分布式版本控制系统,这意味着每个开发者本地都有一个完整的项目...

Global site tag (gtag.js) - Google Analytics