git 的使用方法(上 - 指令)

news2024/11/26 3:33:47

目录

  • 前言:
  • 一、Git 是什么?
  • 二、SVN与Git的最主要的区别?
  • 三、Git 安装
  • 四、git 配置
    • 1. 创建仓库 - repository
    • 2. 配置
    • 3. 工作流与基本操作
  • 五、Git 的使用流程
    • 1. 仓库中创建 1.txt文件
    • 2. 查看工作区的文件状态
    • 3. 添加工作区文件到暂存区
    • 4. 创建版本
    • 5. 查看提交日志
    • 6. 修复提交
    • 7. 删除
    • 8. 撤销重置
    • 9. 比较
    • 10. 分支
    • 11. 标签
  • 六、在使用指令时出现的问题
    • 1. 显示乱码问题
    • 2. 使用 git commit 指令出现以下问题
  • 总结:

前言:

在工作中我们的项目一般都是多人合作完成的,这样就需要用到 git 了,跟随本文来一起学习把!


一、Git 是什么?

Git 是目前世界上最先进的 分布式 版本控制系统。

工作原理 / 流程:

请添加图片描述

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

二、SVN与Git的最主要的区别?

SVN集中式 版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

Git分布式 版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。


三、Git 安装

Windows 下载地址:https://git-scm.com/download/win

在这里插入图片描述
点击下载后除了下图的步骤外,其他默认进行安装即可

请添加图片描述


四、git 配置

当安装完成后,在需要配置 git 的文件中,使用 cmd 进入 黑窗口,或者右键点击 Git Bash Here 进入配置窗口中。

1. 创建仓库 - repository

进入希望纳入 git 版本控制的项目目录,使用 git init 初始化

git init

该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这个目录也是上面我们说的三个区域之一,这个目录也是 Git 保存数据记录的地方,非常重要,如非必要,不要轻易改动。

当然我们很多人,是看不到 .git 的子目录的,这和我们电脑的设置有关,根据下图进行调整,就会显示出来了。

在这里插入图片描述


2. 配置

当创建完仓库后,需要设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改。

git config user.name "你的姓名"
git config user.email "你的邮箱"

-- global

通过 --global 选项可以设置全局配置信息

git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"

检查配置

// # 打印所有config
git config --list
// # 打印指定config
git config user.name

3. 工作流与基本操作

当一个项目被 Git 初始化以后,只是表示我们希望通过 Git 来管理当前的这个项目文件的不同时期版本记录,但是这个时候项目中已存在的文件,或者以后新增的文件都是没有进入版本控制管理的,它们是 未追踪(Untracked) 的状态。


五、Git 的使用流程

请添加图片描述


1. 仓库中创建 1.txt文件

使用以下指令创建 1.txt 文件:

cd .> 1.txt

在这里插入图片描述


2. 查看工作区的文件状态

使用以下指令查看工作区的文件状态:

git status

在这里插入图片描述

使用 git status 查看状态,红色字体显示在工作区,绿色字体显示在暂存区


3. 添加工作区文件到暂存区

通过以下指令添加工作区文件到暂存区:

git add 1.txt
// # 添加多个文件
git add 2.txt 3.txt
// # 添加整个目录
git add ./a
// # 添加多个目录
git add ./b ./c
// # 添加所有文件
git add .

在这里插入图片描述


4. 创建版本

使用以下指令,将暂存区里的改动给提交到本地 git 仓库,也就是为这次工作(一般会把某个具有特定意义的工作作为一个版本,它可以是多个文件的变化)

git commit
// # 会调用默认(或自定义)的文本编辑器

// 直接在 cmd 中使用,无需打开编辑器
git commit -m "用简洁的语法把 git 仓库中的改动写出来"

在这里插入图片描述

备注信息中不要使用 空格 否则会报错。


5. 查看提交日志

通过以下指令查看提交日志:

// 完整格式
git log
// 简要格式(单行)
git log --oneline

在这里插入图片描述


6. 修复提交

使用以下指令使用修复(替换上一次)提交,在不增加一个新的提交版本的情况下将新修改的代码追加到前一次的提交中

git commit --amend -m 提交

在这里插入图片描述


7. 删除

通过以下指令可以删除文件:

// # 从 git 仓库与工作区中删除指定文件
git rm 文件

// # 只删除 git 仓库中的文件
git rm --cached 文件

// # rm 以后,需要 commit 这次操作,否则 rm 将保留在暂存区
git commit -m 修正

在这里插入图片描述


8. 撤销重置

git reset

从暂存区中撤销到工作区

// 从暂存区中撤销一个指定文件
git reset HEAD 文件名称
// 从暂存区中国年撤销所有文件
git reset HEAD .

该命令既可以用于回退版本

// # 回退到指定的 commitID 版本
git reset --hard commitID

在这里插入图片描述


9. 比较

通过以下指令可以进行比较:

// # 比较 工作区和暂存区
git diff 文件 
// # 比较 暂存区和仓库
git diff --cached [commitId] 文件
// # 比较 工作区和仓库
git diff commitId filename
// # 比较 仓库不同版本
git diff commitId1 commitId2

在这里插入图片描述


10. 分支

我们的开发就像是游戏的任务,默认是在主线 (master) 上进行开发的。许多时候,还有各种支线任务,git 支持我们创建分支来进行项目开发。

查看分支

git branch

在这里插入图片描述


创建分支

git branch 分支名称

在这里插入图片描述


切换分支

git checkout 分支名称
// # 也可以使用 checkout -b 来新建分支
git checkout -b 分支名称

在这里插入图片描述


分支合并

// # B 合并到 A,需要切换到 A 分支
git merge 被合并分支

// # 查看已经合并的分支
git branch --merged
// # 查看未合并的分支
git branch --no-merged

在这里插入图片描述


删除分支

// # 如果分支为未合并状态,则不允许删除
git branch -d 分支名称
// # 强制删除
git branch -D 分支名称

在这里插入图片描述


合并记录

rebase

// # 合并 HEAD 前两个祖先记录
git rebase -i HEAD~2

~ : 纵向

^ : 横向

请添加图片描述


rebase 操作

# p, pick = use commit => 使用
# r, reword = use commit, but edit the commit message => 使用,但重新编辑说明
# e, edit = use commit, but stop for amending => 使用
# s, squash = use commit, but meld into previous commit => 使用,但合并上一次
# f, fixup = like "squash", but discard this commit's log message => 就像 squash 那样,但会抛弃这个 Commit 的 Commit message
# x, exec = run command (the rest of the line) using shell => 执行脚本
# d, drop = remove commit => 移除
git rebase -i HEAD~3
// # 弹出编辑器,根据需要的进行修改,然后保存
// # 如果为 r,s 则会再次弹出编辑器,修改新的 commit message,修改之后保存

如果出现一些问题,可以通过 git rebase --edit-todogit rebase --continue 进行重新编辑保存


合并冲突

有的时候,不同的分支可能会对同一个文件内容和位置上进行操作,这样在合并的过程中就会产生冲突

  • 查看冲突文件

在这里插入图片描述

  • 修复冲突内容

请添加图片描述

比较变更:

请添加图片描述

  • 提交
git add .

11. 标签

有的时候,我们希望给某一个特定的历史提交打上一些标签。

新建 tag

git tag -a v1.0.0 HEAD/commitId

查看 tag

git tag

六、在使用指令时出现的问题

1. 显示乱码问题

如果文字显示为乱码执行以下指令:

// 进入windoes的cmd 然后分别输入以下五行
git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8
set LESSCHARSET=utf-8

在这里插入图片描述


2. 使用 git commit 指令出现以下问题

当需要提交文件到本地仓库时,使用 git commit 问题出现以下问题,输入 :wq 后回车解决问题。

在这里插入图片描述


总结:

欢迎大家加入我的社区,在社区中会不定时发布一些精选内容:https://bbs.csdn.net/forums/db95ba6b828b43ababd4ee5e41e8d251?category=10003


以上就是 git 的使用方法(上 - 指令),不懂得也可以在评论区里问我或私聊我询问,以后会持续发布一些新的功能,敬请关注。
我的其他文章:https://blog.csdn.net/weixin_62897746?type=blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/365102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++11 之智能指针

文章目录std::shared_ptrstd::weak_ptrstd::unique_ptr智能指针多线程安全问题在实际的 c 开发中,我们经常会遇到诸如程序运行中突然崩溃、程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的。比如: 有…

浅谈Synchronized的原理

文章目录1.引言2.Synchronized使用方式2.1.普通函数2.2.静态函数2.3.代码块3.Synchronized原理4.Synchronized优化4.1.锁粗化4.2.锁消除4.3.锁升级4.4.无锁4.5.锁偏向锁4.6.轻量级锁4.7.重量级锁5.整个锁升级的过程1.引言 在并发编程中Synchronized一直都是元老级的角色&#…

斗地主洗牌发牌-课后程序(JAVA基础案例教程-黑马程序员编著-第六章-课后作业)

【案例6-4】 斗地主洗牌发牌 【案例介绍】 1.任务描述 扑克牌游戏“斗地主”,相信许多人都会玩,本案例要求编写一个斗地主的洗牌发牌程序,要求按照斗地主的规则完成洗牌发牌的过程。一副扑克总共有54张牌,牌面由花色和数字组成…

Linux 定时任务调度(crontab)

一、Crontab Crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 可以使用Crontab定时处理离线任务,比如每天凌晨2点更新数据等,经常用于系统任务调度。…

【Linux】冯.诺依曼体系结构与操作系统

环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹冯.诺依曼体系结构什么是冯诺依曼体系结构?我们如今的计算机比如笔记本,或者是服务器,基本上都遵循冯诺依曼体系结构…

记一次web漏洞挖掘随笔

最近挖了一些漏洞。虽然重复了,但是有参考价值。这边给大家分享下。漏洞重复还是很难受的,转念一想,人生从不是事事如人意的,漏洞重复忽略,不代表失败。先来后到很重要,出场顺序很重要。1.某站rce 忽略理由…

Docker----------DockerFile解析

1. 是什么 Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 官网:https://docs.docker.com/engine/reference/builder/ 1.编写Dockerfile文件 2.docker build命令构建镜像 3.docker run依镜像运行容器实例…

第47天|LeetCode392. 判断子序列、LeetCode392. 判断子序列

1.题目链接:392. 判断子序列 题目描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如&…

Barra模型因子的构建及应用系列四之Residual Volatility因子

一、摘要 在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子和Momentum因子,并分别创建了对应的单因子策略。本节文章将在该系列下进一步构建Residual Volatility因子,该策略在2022年以来跑赢大盘指数,且具有波动小的特…

Linux内核内存管理

目录 一、内核内存管理框架 二、内核中常用动态分配 2.1 kmalloc 2.2 vmalloc 2.3 kmalloc & vmalloc 的比较 2.4 分配选择原则: 三、IO访问-------访问外设控制器的寄存器 四、led驱动 1. 读原理图 2. 查阅SOC芯片手册 3. 编写驱动 一、内核内存管理…

Leetcode之消失的数字轮转数组

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、消失的数字一、消失的数字 二、旋转数组 提示:以下是本篇文章正文内容,下面案例可供参考 一、消失的数字 这题找出消失的一个数字&#…

自行车出口欧盟CE认证,新版自行车标准ISO 4210:2023与ISO 8098:2023发布

2023年1月,国际标准化组织ISO发布了新版“自行车以及儿童自行车的测试标准”,即ISO 4210:2023以及ISO 8098:2023,用于取代了SO 4210:2015以及ISO 8098:2015。新版标准一经发布,立即生效。欧盟标准化委员会C…

使用 Python 抓取和优化所有网站图像

,我发布了一个通过FTP自动优化新图像的教程。这次我们将抓取整个网站,并在本地优化我们遇到的图像,按URL组织。请注意,这个简短但中级的脚本不适用于大型站点。首先,所有图像都转储到一个文件夹中。为每个页面创建一个…

ASP.NET 网站开发(联合增,删,改,查)

联合多表查询查询: linqDBDataContext db new linqDBDataContext(); stu d db.stu.Where(p > p.sid 2).FirstOrDefault(); if (d ! null) { var Marks d.marks; GridView1.DataSource Marks; GridView1.DataBind(); db.Su…

理解B树及B+树、B*树

目录 一.B树概念 二.B树插入思路 二.B树分部实现 1.树节点类 2.B树成员结构 3.查找函数 4.插入函数(核心) 5.插入关键值 6.中序遍历(有序) 三.B树实现总代码 四.B树性能分析 五.B树和B*树 1.B树 2.B*树 3.总结 六…

Android上架构建KeyStore应用签名

Android上架构建KeyStore应用签名Android上架构建KeyStore应用签名构建签名生成密钥读取填写使用Android上架构建KeyStore应用签名 我们的应用在上架前需要构建应用签名,使用的是Java进行构建 构建签名 需要有Java环境,注意尽量使用JDK8!使…

CIMCAI super unmanned intelligent gate container damage detect

世界港航人工智能领军者企业CIMCAI中集飞瞳打造全球最先进超级智能闸口无人闸口ceaspectusG™视频流动态感知集装箱箱况残损检测箱况残损识别率99%以上,箱信息识别率99.95%以上World port shipping AI leader CIMCAIThe worlds most advanced super intelligent gat…

RK3588 PMIC/Power电路 PCB 设计指南

1、VDD_LOGIC,VDD_GPU,VDD_NPU,VDD_CPU电源的 DC-DC 远端反馈设计。100ohm反馈电阻需要靠近输出电容放置,电阻一端连接到 DC-DC 输出电容,另一端连接到PMIC 的VOUT 反馈脚上,并同时连接到 RK3588 电源管脚同…

网络信息安全(四)

IIS WEB服务器 服务器配置静态IP 安装WEB服务软件 打开软件 检查80端口是否打开 DNS解析不同域名站点 新建两个网页京东和淘宝 安装DNS组件并创建两个区域 新建主机 XP上指定DNS 正常情况下同一个服务器上一个端口只提供一个服务 添加主机头值 XP验证 IIS FTP服务器 FTP工作模式…

【20230221】【剑指1】排序(中等)II

1.最小的K个数sort直接用太无脑了,虽然底层实现也是快排,但是快排还是得会写啊快速排序快速排序算法有两个核心点,分别为 “哨兵划分” 和 “递归” 。哨兵划分操作: 以数组某个元素(一般选取首元素)为 基准…