当前位置: 首页 > news >正文

【前端】Git 常用

文章目录

  • 一、git 配置
    • 1.1 查看系统配置
    • 1.2 查看当前用户配置
    • 1.3 查看当前git用户名
    • 1.4 查看当前git邮箱
    • 1.5 查看当前仓库配置信息
    • 1.6 修改git用户名
    • 1.7 修改git邮箱
  • 二、git 常用命令
    • 2.1 git init
    • 2.2 git clone
    • 2.3 git status
    • 2.4 git add
    • 2.5 git commit
    • 2.5 git log
    • 2.6 git pull
    • 2.7 git push
    • 2.8 git fetch
  • 三、分支
    • 3.1 git branch
    • 3.2 git checkout
    • 3.3 git merge
  • 四、回滚
    • 4.1 仓库+暂存区回滚
    • 4.2 暂存区回滚
    • 4.3 仓库回滚
    • 4.4 本地+仓库+暂存区回滚
    • 4.5 远程仓库回滚

一、git 配置

查看当前git环境详细配置

git config -l

1.1 查看系统配置

git config --system --list

配置文件在git安装目录/etc/gitconfig

1.2 查看当前用户配置

git config --global --list

1.3 查看当前git用户名

git config user.name

1.4 查看当前git邮箱

git config user.email

1.5 查看当前仓库配置信息

git config --local --list

配置文件在:当前项目的/.git/config

1.6 修改git用户名

git config --global user.name "用户名"

1.7 修改git邮箱

git config --global user.email "邮箱"

二、git 常用命令

2.1 git init

当前目录新建一个仓库

 git init

2.2 git clone

克隆一个远程仓库

git clone [url]

2.3 git status

查看所有文件状态

git status

查看指定文件状态

git status [file-name]

2.4 git add

添加当前目录下的所有文件到暂存区:

git add .

将工作区被修改的文件和被删除的文件提交到暂存区,不包括新增的文件
u指update

git add -u .

将工作区被修改,被删除,新增的文件都提交到暂存区
-A指all

git add -A .

从工作区添加指定文件到暂存区

git add [file1] [file2] ...

2.5 git commit

提交暂存区到仓库区

git commit -m [message]

提交暂存区的指定文件到仓库区

git commit [file1] [file2] -m [message]

示例:git commit src/commit.js -m “提交commit.js修改”

2.5 git log

显示所有commit日志

git log

查看分支合并情况

git log --graph --pretty=oneline --abbrev-commit

查看分叉历史

git log --oneline --decorate --graph --all

查看最新3条commit日志数据

git log -3

2.6 git pull

从远程仓库拉取代码到工作区

git pull

2.7 git push

将文件提交到远程仓库

git push

强制提交

git push -f

推送当前本地分支到指定远程分支

git push origin [branch-name]

2.8 git fetch

下载远程仓库的所有变动

git fetch [remote]

三、分支

3.1 git branch

查看所有本地分支

git branch

查看所有远程分支

git branch -r

查看本地和远程的所有分支

git branch -a

新建一个分支,但依然停留在当前分支

git branch [branch-name]

新建一个分支,并切换到该分支

git checkout -b [branch-name]

删除分支

git branch -d [branch-name]

删除远程分支

git push origin --delete [branch-name]

3.2 git checkout

切换到指定分支,并更新工作区

git checkout [branch-name]

新建一个分支,并切换到该分支

git checkout -b [branch-name]

切换到上一个分支

git branch -

3.3 git merge

合并指定分支到当前分支

git merge [branch-name]

四、回滚

4.1 仓库+暂存区回滚

将仓库与暂存区回滚到指定版本,工作区不变
也就是说恢复到git add .之前的状态
不支持仅回退单个文件

命令:

git reset [HEAD]

HEAD说明:

  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本

可以使用 ~数字表示

  • HEAD~0 表示当前版本
  • HEAD~1 上一个版本
  • HEAD^2 上上一个版本
  • HEAD^3 上上上一个版本示例:
  • 示例:
    回退上个版本
  git reset HEAD^或git reset HEAD~1

回退指定版本(版本号通过git log查看):

git reset 9e8f2f858ae03944bab4ac19c927699ba367b941

回退上上个版本:

  git reset HEAD^^或git reset HEAD~2

4.2 暂存区回滚

通过git add .添加到暂存区后,重置暂存区,与上一次commit保持一致,但工作区不变
撤回所有:

git reset

git reset HEAD

撤回指定文件:

git reset [file]

例:

git reset src/index.js

4.3 仓库回滚

已经通过git commit提交后,回滚到暂存区
也就是说,恢复到add后的状态
命令:

git reset --soft [HEAD]

HEAD说明与4.1一致
示例:回退上个版本

git reset --soft HEAD^
或
git reset --soft HEAD~1

4.4 本地+仓库+暂存区回滚

将本地、暂存、git仓库都回滚到指定版本
也就是所有内容都会恢复到上个版本,包括本地工作区内的所有修改
使用的时候要注意,它会删除回退点之前的所有信息
命令:

git reset --hard [HEAD]

HEAD说明与4.1一致
示例:
回退上个版本

git reset --hard HEAD^
或
git reset --hard hEAD~1

回退指定的版本

git reset --hard 4f0cf3710b839e31ce3b5093f0d8fb0ad36e8c95

4.5 远程仓库回滚

步骤:先将本地版本回退到上一个版本,再push推送到远程仓库
示例:

// 先回退本地仓库版本(注意--hard所有内容都会恢复到上个版本,包括本地工作区内的所有修改)
git reset --hard HEAD^// 再提交到远程仓库
git push -f

相关文章:

  • C语言| 宏定义
  • Python 学习 第四册 第10章 系统(2)
  • OpenCV图像变换
  • React的State和setState
  • Flink——最流批的大数据框架(流批一体)
  • 【Unity学习笔记】第十八 基于物理引擎的日月地系统简单实现
  • java智慧工地系统源码 智慧工地标准之一:环境监测 告别灰头土脸、智慧工地环境监测系统都包括哪些功能?
  • ThinkPHP6图书借阅管理系统
  • 基于uni-app和图鸟UI的智慧农业综合管控平台小程序技术实践
  • vue实现的商品列表网页
  • 第二篇: 掌握Docker的艺术:深入理解镜像、容器和仓库
  • 华为HCIP Datacom H12-821 卷10
  • 2024年华为OD机试真题-万能字符单词拼写-C++-OD统一考试(C卷D卷)
  • Admin
  • 公共网络IP地址不正确?别担心,这里有解决方案
  • 【EOS】Cleos基础
  • 4. 路由到控制器 - Laravel从零开始教程
  • 78. Subsets
  • CSS盒模型深入
  • Java 网络编程(2):UDP 的使用
  • Sublime text 3 3103 注册码
  • VuePress 静态网站生成
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 从零搭建Koa2 Server
  • 关于List、List?、ListObject的区别
  • 码农张的Bug人生 - 初来乍到
  • 学习Vue.js的五个小例子
  • gunicorn工作原理
  • ![CDATA[ ]] 是什么东东
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • ## 基础知识
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (14)Hive调优——合并小文件
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (分布式缓存)Redis分片集群
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (每日一问)基础知识:堆与栈的区别
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (一)VirtualBox安装增强功能
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [20161101]rman备份与数据文件变化7.txt
  • [20190416]完善shared latch测试脚本2.txt
  • [Day 26] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • [flink]部署模式
  • [FreeRTOS 基础知识] 栈