git 基础

作者: 踏莎行 | 来源:发表于2021-07-22 12:04 被阅读0次

下载:https://git-scm.com/downloads

git是什么?

git是一种分布式的版本管理系统,Linux的创造者写的。git的作用就是对文件进行版本管理,方便在不同版本进行切换修改,类似文件分不同时间备份让后需要时找回其中一份代替,不过更方便使用

git还可以与一些远程代码托管仓库搭配使用,比如github,gitee,使用git将你的项目托管到远程仓库,就相当于是将程序存放到了一个网盘上。

git还可以实现多人协作开发

基本使用

将目录切换到你要创建仓库的文件下,右键,就会看到一个git bash here,点击打开


Snipaste_2021-07-22_11-23-14.png
  • 初次使用git
git config --global user.name "用户名"
git config --global user.email 邮箱
  • 仓库初始化
git init
// 初始化成功后,会在文件夹中生成一个.git的文件,该文件默认是隐藏
  • 将修改添加至暂存区
    创建文件,添加内容之后
// 将一个文件中的修改提交到暂存区
git add 文件名

// 将所有文件中的修改提交到暂存区
git add .
  • 提交到本地
git commit -m "提交信息"

如果直接执行git commit命令,git会弹出一个vim的编辑窗口


Snipaste_2021-06-25_17-37-29.png

也就说提交信息是一定要有的,否则提交失败。vim编辑窗口的使用方法就是,先按“i”/“a”/“o”三个其中的一个,进入编辑环境,输入完成你的提交信息之后,按“Esc”键退出编辑环境,在输入“:w”回车以确认输入,再输入“:q”回车,退出vim编辑窗口,输入的命令必须都是英文的,否则失效

  • 查看提交的历史记录
git log

.git目录分析

有“\”代表是文件夹

hooks\
info\
logs\
objects\
refs\
COMMIT_EDITMSG
config
description
HEAD
index

  • hooks
    文件包含客户端或者服务端的脚本钩子,在特定情况下执行。打个比方,就相当于是js的事件,执行对应的事件从而执行对应的事件函数
  • info 信息文件夹
    里面就一个exclude文件,包含全局性排除排除文件,通常会在项目的根目录下创建一个.gitignore文件配置忽略文件名称。
    比如说我们在项目完成之后进行打包,生成dist文件夹,不希望git去跟踪它里面的文件变化,就可以在.gitignore文件中写一个dist,这样git就不会跟踪了。忽略文件要写后缀名
// .gitignore
dist
index.css
  • logs 记录文件夹

    • 里面有一个HEAD文件,里面记录了我们的提交历史
    • refs文件夹中主要记录的是分支的一些提交信息,在开发中,可能会存在多个分支
  • objects是整个文件夹的仓库目录
    我们文件内容的修改,被追踪文件的状态等,都在该文件夹中

  • refs分支信息

  • COMMIT_EDITMSG 记录了我们最后一次提交的文字说明

  • config 当前文件的配置信息

  • description描述

  • HEAD 当前分支的路径

    ref: refs/heads/master
    

    默认是在master主分支上

  • index 暂存区文件
    将修改的内容提交到暂存区实际上就是提交到index文件中,二进制文件,无法查看

版本库的三个区

初始化版本库:git init,这样就生成了一个仓库,每一个仓库都有三个区域:工作区(代码编辑区),暂存区(修改待提交区),仓库区(代码保存区)

  • 工作区实际上就是项目文件夹中的文件
  • 暂存区:就是在上面讲到.git文件夹中的index文件
    查看暂存区中有哪些文件:git ls-files
  • 仓库区:就是.git文件夹中的objects文件夹

这之间的顺序就是要先在工作区编辑好内容,然后才能提交到暂存区,最后再commit存档到仓库区

查看版本库的状态

git status
  • 执行命令之后,若返回的结果是" nothing to commit, working tree clean ",表明工作区现在没有修改,工作区是干净的
  • 假如新增一个index.html文件,再查看一下版本库状态,返回的结果就是当前仓库中还没有被跟踪的文件,提示你使用git add 文件名命令,将未跟踪的文件添加到暂存区
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        index.html

然后提交到暂存区,git add index.html
再查看一下版本库的状态git status

// 还没有提交
No commits yet

// 下面修改将会提交
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   index.html

使用git commit -m "test " 提交到仓库区,再查看仓库状态,就反馈到了工作区是干净的,此时对index.html随便添加一点东西,再查看一下仓库状态

// 没有提交到暂存区的更改
Changes not staged for commit:
  // 添加到暂存区
  (use "git add <file>..." to update what will be committed)
  // 放弃修改
  (use "git restore <file>..." to discard changes in working directory)
        modified:   index.html

这里就出现了一个放弃修改的命令,就是将程序还原到上一次提交的时候

// 放弃某一个的修改
git restore 文件名
// 放弃此次所有的修改
git restore .
  • 删除文件
    在项目目录下,创建一个index.html文件,输入内容,并git add index.html,和git commit -m "test"之后,查看一下文件列表git ls-files,打印结果肯定是只有一个index.html文件,现在我们在编辑器中删除这个index.html文件,然后再git ls-files,你会发现index.html依然存在,也就是你在编辑器里面删了,但是暂存区还没有删掉,此时查看版本库的状态
// 查看版本库的状态
$ git status
On branch master
Changes not staged for commit:
  /**
   * 使用git add 文件名
   * 或者使用
   * git rm 文件名
   * 可以将文件名添加到暂存区
   */
  (use "git add/rm <file>..." to update what will be committed)
  // 这里的git restore <file>就可以理解为是还原文件,撤销对文件的删除,恢复文件
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    index.html

no changes added to commit (use "git add" and/or "git commit -a")
  • 总结
    因为代码块的原因,上面无法正常显示出git给我们反馈的颜色,这里做一个总结
    执行git status命令之后
git反馈颜色 传达的意思
红色 说明此修改只存在于工作区
绿色 说明此修改只存在于工作区和缓存区

查看差异

  • git diff 命令,查看工作区和暂存区的差异,显示工作区较暂存区做了哪些修改,但是不会显示文件的增删
    新建一个仓库
git init

创建一个文件1.txt,随便输入123,添加暂存区,提交

git add 1.txt
git commit -m "test"

然后在1.txt文件中添加一些内容:哈哈哈哈哈哈哈哈哈
此时工作区做了修改,但是没有提交暂存区,git diff查看工作区和暂存区的差异

git diff

git的反馈信息就是

diff --git a/1.txt b/1.txt
index d800886..da194ec 100644
--- a/1.txt
+++ b/1.txt
@@ -1 +1,2 @@
-123
\ No newline at end of file
+123
+哈哈哈哈哈哈哈哈哈
\ No newline at end of file

下一节

相关文章

  • 2.Git初步

    Git是什么 Git是什么 Git基础 Git基础 1. 下载安装Git GIT官网 安装好后,按win+R 输入...

  • Git总结

    初步 下载git 基础配置: 基础操作 获取Git仓库 初始化现有仓库 git init 克隆远程仓库 git c...

  • Git基本操作

    一、 git的基础操作 基础操作 1.在项目里创建一个git : $ git init 链接远程项目: $ git...

  • git操作

    git基础命令: git commit ---- 提交git branch newBranchName --- 新...

  • Git

    关于版本控制 Git 简史 Git 基础 安装 Git Git 前的配置

  • 2.3 Git 基础 - 查看提交记录

    提交记录git log 2.2 Git 基础 - 记录每次更新到仓库(删除和改名)2.4 Git 基础 - 撤销操...

  • 面试中的那些 Git 问题 - 基础部分

    面试中的那些 Git 问题 - 基础部分 面试中的那些 Git 问题 - 基础部分

  • 2016-06-24 阅读整理

    Git Git 基础命令Git 分支管理Git 分支合并Git 公钥提交Git 常用技巧Git 设置别名 Andr...

  • Git 系列文章

    GIT 初识 Git的基础操作 Git的远程操作 Git的分支管理 Git标签操作 Git团队协作 Git 多账户...

  • git资源学习

    git资源学习 Git详解之一 Git起步 Git详解之二 Git基础 Git详解之三 Git分支 Git详解之四...

网友评论

    本文标题:git 基础

    本文链接:https://www.haomeiwen.com/subject/ttuoyltx.html