git常用指令详细总结(一看就懂)

什么是版本控制

目标:了解什么是版本控制 版本控制的特点 目前版本控制系统

  • 拥有历史记录 以及 多人协同的版本控制系统
  • 历史记录
  • 多人协同
  • SVN
  • GIT

集中式版本控制

目标:了解什么是集中式版本控制

优点: 上手比较简单

  • 终端不需要关心 版本库的问题

缺点:中心化的方式,导致一旦服务器出问题,前功尽弃

分布式版本控制

目标:了解什么是分布式版本控制

优点:几乎可以实现任何要求

  • 多节点 每个节点都有自己的版本库(本地仓库)
  • 多节点 通过远程仓库来进行系统

缺点:因为几乎可以实现任何要求 导致命令太多

Git介绍

目标:了解Git的前世今生(了解) 知道git是一个分布式的版本控制系统

介绍: git从Linux起源, 广泛为开发者提供强大的功能

  • 开源社区
  • github账号

**任务**注册一个github账号

Git的下载和安装

目标-任务: 下载并安装git

路径:

1 下载地址:git下载地址

2 安装

  • windows
  • macOs
  • Linux

3 查看安装成功

  • $ 表示要在此位置输入内容
# 查阅版本号
$ git --version 
git version 2.22.0.windows.1

Git的使用方式和GitBash介绍

目标 : 了解git的使用方式 了解gitBash和windows命令行的区别,

  • gitBash可以运行linux命令 windows不行 但是powershell支持部分windows
  • 图形化方式 和 命令行方式 推荐命令行

任务: 使用gitBash 进行一些简单操作 切换目录 查看目录

路径:

  1. 通过开始菜单 或者右键 调出gitBash窗口
  2. 尝试输入一些命令

例如

# 回到上一级
$ cd ..
# 输出当前目录
$ pwd
# 清空屏幕
$ clear

注意 $ 的意思是 这里需要用户输入 ,不包括在要输入的命令里面

常用命令补充-基本命令-切换目录/输出目录/查看目录文件

目标: 切换目录/输出目录/查看目录文件 命令.

# 切换目录 
$ cd 目录名
# 切换到上一级 
$ cd ..
# 输出当前目录
$ pwd 
# 查看 目录文件列表
$ ls
# 查看目录文件列表 包括隐藏文件
$ ls -a  

任务:

  1. 切换到目录 test下,
  2. 打印目录路径,
  3. 并查看目录文件列表

路径

# 切换到一个目录下
$ cd  test 
# 输出目录路径
$ pwd
# 查看目录下文件
$ ls
# 查看目录下隐藏文件
$ ls -a 

常用命令补充-基本命令-新建目录/删除目录/新建文件/删除文件

目标: 新建目录/删除目录/新建文件/删除文件 命令

# 新建目录
$ mkdir 目录1 目录2 ..
# 删除目录只能删除当前文件夹
$ rmdir 目录1 目录1
# 删除目录
$ rm -rf 目录名1 目录名1 ..
# 新建文件
$ touch 文件名1 文件名2 ..
# 删除文件
$ rm 文件1 文件2 ..

任务:

  1. 新建一个目录A,在目录A下新建两个目录B和C,
  2. 查看当前目录确保B和C存在, 然后删除目录C,
  3. 在B目录下 新建文件 1.txt 和 2.txt , 查看文件目录 确定 1.txt和2.txt存在
  4. .删除2.txt 并查看目录 确保 2.txt已经删除

路径:

# 新建目录A
$ mkdir A
# 切换到目录A下
$ cd A
# 新建B 和 C 目录
$ mkdir B C
# 查看目录
ls 
# 删除 C 
$ rm -rf C
# 打开B目录
$ cd B
# 新建1.txt 2.txt
$ touch 1.txt 2.txt 
# 查看目录
$ ls 
# 删除 2.txt
$ rm 2.txt 
# 查看目录
$ ls

通过以上练习 可掌握基本文件新建 删除

常用命令补充-查看文件内容-编辑文件

目标: 掌握查看文件内容和编辑文件命令

# 查看文件内容
$ cat 文件名 
# 查看文件内容 需要按q退出
$ less 文件名

$ vi 文件名
# 进入插入编辑模式 
$ i 
# esc退出插入编辑模式
# 退出编辑模式 但是不保存
$ :q
# 保存并退出编辑模式
$ :wq
# 强制退出但不保存编辑模式
$ :q!

任务:

  1. 新建一个文件1.js, 写入 hello world 保存退出, 用两种方式查看文件.

  2. 再次写入 hello world2 但不保存 退出, 查看文件内容

路径

# 新建一个文件
$ touch 1.js
# 编辑 1.js
$ vi 1.js
# 进入编辑模式
$ i
# 写入hello  world
# esc 退出编辑模式
# 保存退出
$ :wq
# 查看文件1
$ cat 1.js
# 查看文件2 
$ less 1.js
# 退出查看文件模式
$ q
# 进入编辑模式
$ vi 1.js
# 进入编辑模式
$ i
# esc退出编辑模式
# 写入hello world2
# 强制退出 不保存
$ :q!
# 查看文件
$ cat 1.js

通过以上练习 可基本掌握 纯命令式的编辑文件

git-基础-初始化配置

目标: 了解git的初始化内容 初始化用户名 邮箱

  • 第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

# 初始化 用户名  用户名可以随意取 但是最好是自己的标识项  必填  --global会将内容存在用户配置下
$ git config --global  user.name '用户名'
# 初始化 邮箱  邮箱是用来发送邮件的用的  必填 
$ git  config --global user.email '邮箱' 
# 查看git配置
$ git config -l

任务: 完成git环境的用户名和邮箱的初始化

路径:

# 初始化用户名
$ git config --global  user.name '用户名'
# 初始化邮箱
$ git  config --global user.email '邮箱' 

注意:邮箱 和 用户名 是在git中的身份, 可以识别是谁提交的代码,并及时通知

git-基础-三个核心区域

目标: 了解掌握git的三个核心区域的含义

**任务😗*能够理解 工作区 <=> 暂存区 <=> 仓库区 的工作流程

  • 工作区 :工作区 就是工作开发的地方,我们在编辑的,开发的,直接面对的目录区域 就是工作区
  • 暂存区 : 暂存区 是由文件工作区 到 仓库区 中间过程的 一个 中间存储节点. 它只是存储了工作区的变动. 可以理解为一个临时备份.
  • 仓库区: 是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
  • 新增文件 删除文件 编辑的文件都要经过暂存区
  • 暂存区就是工作区文件改变的一个文件快照
var a = 1 //初始化文件
var a = 2 //工作区修改
//提交到暂存区
var a = 2 
//工作区修改
var a = 3 
// 提交到仓库区
// 提交暂存区到仓库区

git-基础-基本操作

目标: 掌握git基础的操作

  1. 初始化仓库
# 在文件目录下
$ git init 
# 新建目录 并在该目录下 初始化仓库
$ git init <目录名>
  1. 查看仓库状态
# 在文件目录下
$ git status 

仓库状态 主要会提示 工作区新增,修改,删除的文件 以及暂存区的所有文件快照

  1. 查看日志
$ git logitg
  1. 提交无追踪文件到 暂存区
# 提交工作区某个文件到暂存区
$ git add 文件名
# 提交工作区新增-修改-删除 到暂存区
$ git add .
  1. 提交暂存区文件到仓库区
# 提交所有暂存区文件到仓库区
$ git commit -m "日志描述"
# 提交暂存区 某些文件到仓库区
$ git commit <文件1>  <文件2> -m "日志描述"
  1. 恢复暂存区文件到 工作区
# 从暂存区恢复某个文件到工作区
$ git checkout -- <文件名>
# 恢复暂存区的所有文件到工作区
$ git checkout .

任务:

  1. 初始化一个本地化仓库, 查看当前仓库状态,
  2. 新增一个文件 index.html, 提交到暂存区, 再提交到仓库区
  3. 在 index.html 中写入 hello world, 再提交到 暂存区,
  4. 从暂存区 恢复到 工作区.

路径:

# 初始化一个仓库
$ git init gitDemo
# 切换到仓库目录
$ cd gitDemo
# 新建并编辑index.html文件
$ touch index.html
# 提交到暂存区
$ git add index.html
# 提交到仓库区
$ git commit -m "新增index.html"
# 进入编辑模式
$ i
# 写入hello world
# esc 退出编辑
# 退出保存
$ :wq
# 提交到暂存区
$ git add index.html
# 暂存区恢复到工作区(大家一定注意 -- 与index.html 之间是有空格的)
$ git checkout -- index.html

git-基础-的文件状态

目标: 理解 git 中的几种文件状态

  • 未追踪:表示还没有被 Git 管理过,既没有进入过暂存区,更没有进入过仓库区
  • 已修改:表示修改了文件,但还没保存到历史记录中。
  • 已提交: 数据已经安全的保存在本地数据库中
  • 已暂存: 表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中

任务:

  1. 完成未追踪文件a.js,
  2. 已修改文件b.js ,
  3. 已暂存文件c.js, touch
  4. 已提交文件d.js等四种文件状态

路径

# 初始化一个仓库
$ git init fileDemo
# 切换到该目录下 
$ cd fileDemo
# 新建一个a.js b.js c.js d.js
$ touch a.js b.js c.js d.js
# 提交b.js c.js d.js 到暂存区
$ git add b.js c.js d.js 
# 提交b.js d.js 到 仓库区
$ git commit b.js d.js -m "提交b.js和d.js"
# 编辑修改b.js内容 保存

#  此时状态 a.js(未追踪) b.js(已修改) c.js(已暂存) d.js(已提交)

git-基础-删除文件

目标: 学会删除工作区文件 以及 放入到暂存区

# 删除工作区文件,并且将这次删除放入暂存区
$ git rm [file1] [file2] ...  
$ rm file  
$ git add file

# 停止追踪指定文件,但该文件会保留在工作区
$ git rm --cached [file]

# 改名文件,并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]

任务:

  1. 将a.js在工作区删除,并放入后暂存区,
  2. 将已提交过的b.js 停止追踪,
  3. 将c.js文件改名d.js 放入暂存区

路径

# 初始化一个仓库
$ git  init Demo 
# 新建a.js b.js c.js 
$ touch a.js b.js c.js
# 提交a b c到暂存区
$  git add . 
# 提交暂存区到仓库
$ git commit -m "提交"
# 删除a.js并放入暂存区
$ git rm a.js 
# 停止追踪b.js
$ git rm --cached b.js
# 重命名c.js 到 d.js
$ git mv c.js d.js

git-基础-忽略文件.gitignore

目标: 知道什么是忽略文件, 并在git中应用

  • 忽略文件是用来存放git工作区中 被默认不追踪的文件信息
  • 例如 npm依赖目录 node_modules

任务 :新建一个忽略文件,在git中忽略掉所有的js文件 和 node_modules

路径

  1. 初始化仓库
  2. 新建.gitignore
  3. 写入以下配置信息
*.js
node_modules

git-基础-撤销和回退

目标: 掌握 如何 仓库区 => 暂存区,工作区, 暂存区 => 工作区的回退机制

# 恢复暂存区的指定文件到工作区
$ git checkout -- [file]

# 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commitid] [file]
# 提交到暂存区 和 仓库区 合并成一步
$ git  commit -a -m "日志" ===  git add .  git commit -m "日志"
# 恢复暂存区的所有文件到工作区
$ git checkout .

# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]

# 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard 

# 重置暂存区与工作区回到仓库的前两个版本 ^^个数决定回退版本个数
$ git reset --hard HEAD^^
# 所有的提交命令 查看
$ git reflog
# 回退版本 
$ git reset --hard <版本号>

任务:

  1. 新建a.js,内容为1, 提交到仓库,将内容变更为2,
  2. 再提交vi 到仓库,内容变为3,提交仓库,
  3. 内容变为4, 提交到暂存区,
  4. 内容变为5, 然后暂存区内容回退到工作区,
  5. 然后回退到内容为2 的版本

路径:

# 初始化仓库
$ git init demo 
# 切换目录
$ cd demo 
# 新建编辑a.js
$ vi 1.js
# 保存退出
$ :wq
# 提交到暂存区
$ git add . 
# 提交到仓库
$ git commit -m "提交第一次"
# 编辑改为2 
# 提交到仓库
$ git commit -m "提交第二次"
# 编辑改为3
# 提交到仓库
$ git commit -a -m "提交第二次"
# 编辑改为4
# 提交到暂存区
$ git add a.js
# 内容变为5
# 暂存区内容回工作区
$  git checkout -- a.js
# 回到版本为2的版本
$ git reset --hard HEAD^

git-基础-总结

总结:

  • 版本控制 历史记录 多人协同
  • 集中式版本控制 SVN
  • 分布式版本控制 GIT
  • GIT安装
  • 常规指令 新建文件夹 /删除文件 /切换目录 /查看文件/新建文件/编辑文件
  • 初始化配置 用户名 邮箱
  • 工作区 <=> 暂存区 <=> 仓库区
  • 工作区 =>暂存区 git add <文件名> git add . 暂存区 => 仓库区 git commit -m “”
  • 未追踪- 已暂存状态-已修改状态-已提交状态
  • 删除文件在git中 git rm 文件名
  • 忽略文件 忽略掉不需要提交的文件或文件夹
  • 撤销回退 后悔药
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值