Git学习(基础)

文章目录

    • Git简介
    • git安装与配置
      • Centos下安装
      • 配置
    • Git工作流程
    • Git 工作区、暂存区和版本库
    • Git 创建仓库
      • 创建一个仓库
      • 克隆一个仓库
    • 基本操作
      • 获取与创建项目命令
      • 基本快照
      • 版本管理
    • 分支管理
    • 查看提交历史

参考 https://www.runoob.com/git/git-tutorial.html

建议到菜鸟教程学习

Git简介

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git学习(基础)_第1张图片

git安装与配置

Centos下安装

yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

yum -y install git-core

git --version查看git版本,出现版本信息即安装成功

配置

git config查看用法

用法:git config [选项]

配置文件位置
    --global              使用全局配置文件
    --system              使用系统级配置文件
    --local               使用版本库级配置文件
    -f, --file <文件>     使用指定的配置文件
    --blob       read config from given blob object

操作
    --get                 获取值:name [value-regex]
    --get-all             获得所有的值:key [value-regex]
    --get-regexp          根据正则表达式获得值:name-regex [value-regex]
    --replace-all         替换所有匹配的变量:name value [value_regex]
    --add                 添加一个新的变量:name value
    --unset               删除一个变量:name [value-regex]
    --unset-all           删除所有匹配项:name [value-regex]
    --rename-section      重命名小节:old-name new-name
    --remove-section      删除一个小节:name
    -l, --list            列出所有
    -e, --edit            打开一个编辑器
    --get-color     找到配置的颜色:[默认]
    --get-colorbool 
                          找到颜色设置:[stdout-is-tty]

类型
    --bool                值是 "true" 或 "false"
    --int                 值是十进制数
    --bool-or-int         值是 --bool or --int
    --path                值是一个路径(文件或目录名)

其它
    -z, --null            终止值是NUL字节
    --includes            查询时参照 include 指令递归查找

配置用户信息:

git config --global user.name “lonmar”

git config --global user.email [email protected]

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息

如果要在某个特定的项目中使用其他名字,只要去掉 --global 选项重新配置即可

git config --list 检查已有的配置信息

查看某个环境变量信息

git config user.name

Git工作流程

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

Git学习(基础)_第2张图片

Git 工作区、暂存区和版本库

工作区:就是你在电脑里能看到的目录。

暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)

版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git学习(基础)_第3张图片

图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区(stage, index),标记为 “master” 的是 master 分支所代表的目录树。

Git 创建仓库

创建一个仓库

git init 初始化一个Git仓库

在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录

该目录包含了资源的所有元数据,其他的项目目录保持不变

Git学习(基础)_第4张图片
指定目录作为Git仓库 git init newrepo

初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录

Git学习(基础)_第5张图片
将文件纳入版本控制:

$ git add *.c
$ git add README

Git学习(基础)_第6张图片
以上两个命令只是提交到缓存区,下面一个命令由缓存区提交给仓库

git commit -m '初始化项目版本'

Git学习(基础)_第7张图片

克隆一个仓库

git clone

  • repo:Git 仓库地址
  • directory:本地目录

基本操作

获取与创建项目命令

  • git init
  • git clone [url]

基本快照

Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比

  • git add

git add 命令可将该文件添加到缓存

  • git status

查看在你上次提交之后是否有修改

  • git diff

执行 git diff 来查看执行 git status 的结果的详细信息

  • git commit

使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。

(在这之前设置好名字与邮箱)

  • git reset HEAD

git reset HEAD 命令用于取消已缓存的内容

  • git rm

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作

git rm

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

git rm --cached

版本管理

参考 https://www.cnblogs.com/jiqing9006/p/8807319.html

版本回退:

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

 git reset --hard HEAD 回到当前版本
 git reset --hard HEAD^ 回到上一个版本

回退到具体的版本号:

git reset --hard [版本号]

在这里插入图片描述

分支管理

创建分支 git branch (branchname)

Git学习(基础)_第8张图片

切换分支 git checkout (branchname)

合并分支 git merge

列出所有分支 git branch

(*标记的是当前分支)
Git学习(基础)_第9张图片

删除分支 git branch -d (branchname)

Git学习(基础)_第10张图片

查看提交历史

  • git log

Git学习(基础)_第11张图片
Git学习(基础)_第12张图片

你可能感兴趣的:(GIt)