Git_常用命令+代码冲突解决方案

文章目录

  • 基本命令的使用
    • 查看git的当前版本
    • 初始化配置
      • 设置用户名及邮箱
      • 设置仓库的认证方式
      • 查看当前配置
    • 创建仓库
      • 从远程服务器克隆仓库
      • 创建本地仓库
    • 添加和提交文件
      • 工作区域和文件状态
        • 工作区域
        • 文件状态
      • 查看文件状态及分支信息
      • 查看暂存区的内容
      • 添加文件
      • 提交文件
      • 查看提交日志
      • 回退版本
      • 撤销操作
    • 差异比较
    • 删除文件
    • 分支相关操作
  • 代码冲突
    • 原因
    • 解决方案

基本命令的使用

查看git的当前版本

git -v

初始化配置

–local: 配置对当前仓库有效

–global: 配置对当前用户(指的是当前用于登录系统的用户)的所有仓库有效

设置用户名及邮箱

 git config --global user.name "xiao Ai"
 git config --global user.email 12345678.@qq.com

注意:由于此处设置的用户名中间有空格所以要使用双引号,正常设置时无需使用双引号

设置仓库的认证方式

git config --global credentail.helper store

credentail.helper后的参数可选:

  • cache: 在第一次输入认证凭据后会将其存储在缓存中,短期内不需要重复输入。
  • store: 将凭据保存在.gitcredentail文件中。除非修改了git服务器上的密码,否则在第一次输入认证凭据后就再也不用输入。

查看当前配置

git config --global --list

创建仓库

从远程服务器克隆仓库

git clone https://github.com/xiaoAi1234/xue-cheng-plus #远程仓库的url地址

创建本地仓库

创建本地仓库前先要进入自己想要作为本地仓库的文件夹下,再使用git命令将该文件夹变成本地仓库。

git init

或者使用如下命令,从而在当前路径下新建一个名为test的文件夹并将其作为本地仓库。

git init test

添加和提交文件

在学习添加和提交文件前,我们需要先了解一下git的工作区域和文件状态。

工作区域和文件状态

工作区域
  • 工作区:也叫本地工作目录,就是电脑中的文件夹。
  • 暂存区:也叫索引,用于保存即将提交到git仓库的内容。
  • 本地仓库:存储代码和版本信息。
文件状态
  • 未跟踪:文件未被git管理 (文件在git status命令下提示为红色)
  • 未修改:文件已被git管理但文件内容未发生变化
  • 已修改:文件内容发生变化但还未添加到暂存区
  • 已暂存:文件内容发生变化并添加到了暂存区内 (文件在git status命令下提示为绿色)

查看文件状态及分支信息

git status

该命令可查看工作区及暂存区中文件的状态,其中:

红色=》未跟踪文件

绿色=》已暂存文件

同时还会提示当前所处分支及相关信息

查看暂存区的内容

git ls-files

添加文件

将文件添加到暂存区,同时文件状态将变为已暂存。

git add 1.txt

添加文件时也可以使用通配符来批量添加文件,如下所示。

git add *.txt

添加当前目录下所有文件

git add .

如果想移除暂存区的文件可使用如下命令

git rm --cached 1.txt

提交文件

将暂存区的文件提交到仓库,-m后跟的是本次提交的相关信息。

git commit -m "第一次提交"

查看提交日志

使用如下命令会显示每次提交的提交者,邮箱,提交日期,相关信息及版本号

git log

想要查看更简洁的日志可使用如下命令。该命令仅显示每次提交的相关信息及版本号

git log --oneline

回退版本

git reset --soft 5af90b8 #要退回到的版本号,也可以为^HARD即退回到上一个版本。

reset后可接参数:

  • soft: 回退版本,但不清空工作区和暂存区内容
  • mixed: 回退版本,清空暂存区内容但不清空工作区内容
  • hard: 回退版本,同时清空暂存区和工作区内容

soft与mixed的使用场景:

可对仓库进行多次回退,然后再一次性提交暂存区中的内容,从而实现将之前提交的多个版本合并成一个版本。

但这里如果是使用mixed在提交前需要先用“git add"命令将工作区内容添加到暂存区。

hard的使用场景:

确认真的需要回退到上一个版本并在后续基于上一个版本进行代码开发时。

撤销操作

可以先通过如下命令查看执行过的git操作,从而找到误操作之前的版本号

git reflog

用reset命令回到之前的版本号

git reset --hard 5af90b8

差异比较

比较工作区与暂存区的差异

git diff

比较工作区和版本库差异

git diff HEAD

比较暂存区和版本库差异

git diff --cached

比较版本库中两个版本的差异

#用法1
git diff 版本一ID 版本二ID
#用法2,此处HEAD指向最新版本
git diff 版本一ID HEAD
#用法3,此处HEAD指向最新版本,HEAD~指向上一个版本,HEAD~3则表示在HEAD前的三个版本
git diff HEAD~ HEAD
#用法4,指定比较特定文件的版本
git diff HEAD~ HEAD file.txt

执行差异比较的结果:
下图提示了file3.txt文件中的内容差异

在这里插入图片描述

红色为删除内容,绿色为添加的内容。

删除文件

# 操作1, 仅能将文件从工作区删除。使用git add后才能将信息同步到暂存区;使用git commit后才能将信息同步到版本库。
rm file.txt
# 操作2, 将文件从工作区和暂存区删除。使用git commit后才能将信息同步到版本库。
git rm file.txt

分支相关操作

# 查看当前仓库的所有分支
git branch
# 新建分支
git branch hhh
# 切换到不同分支。但由于checkout也有恢复文件的作用,所以当分支名与文件名相同时会产生歧义,默认为切换分支
git checkout h1
# git在2.23版本后专门切换分支的命令
git switch h1
# 若当前分支为h2,则会将分支h1合并到h2中。注意:虽然分支被合并但它仍然存在于仓库中
git merge h1
# 查看分支图
git log --graph --oneline --decorate --all
# 删除已合并分支
git branch -d h1
# 强制删除分支,不管该分支是否合并
git branch -D h2

代码冲突

原因

两个分支修改了同一行代码

解决方案

#1.查看发生冲突的文件
git status
#2.查看冲突的具体内容
git diff
#3.退出冲突查看页面
进入末行模式后,输入wq
#4.对冲突文件进行修改
cat 1.txt
#5.提交合并后的文件
git add .
git commit -m "merge"

ps: 在提交前也可选择中断本次合并

git merge --abort

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ETLCloud结合Oracle实现CDC

CDC,即Change Data Capture(变更数据捕获)功能,主要针对实时数据同步和更新场景,能够实时监测数据库中的数据变化,并将发生变化的数据进行高效精准地捕获和传输,极大地提高了数据处理的效率以及…

ATFX汇市:美联储理事沃勒表示, 降低通胀的进展已经放缓,美指受提振

ATFX汇市:昨日,美联储理事在纽约经济俱乐部发表演讲,期间提到:第四季度国内生产总值(GDP)数据以及1月份就业增长和通胀数据比预期的要热,这意味着不急于开始降息以使货币政策立场正常化&#xf…

蓝桥杯-正则问题

#include<iostream> #include<string> #include<algorithm> using namespace std;int pos 0, l;//pos当前遍历到的位置&#xff0c;l是正则式的长度 string s;int dfs(){int temp 0, ans 0;//temp保存左半部分 while(pos < l){if(s[pos] (){pos;//跳…

JAVA_for - each循环

本章咱们聊聊简单的for-each循环&#xff1a;看完这章&#xff0c;写个test代码&#xff0c;以后写for-each循环应该就是探囊取物&#xff0c;胸有成竹。 for-each循环基本语法 for(元素类型 元素变量 : 数组名) {//操作语句 } 简单说几句&#xff1a; for-each循环是for循环…

Games104 听后笔记

1、为什么UE5要自己写一套STL库 因为传统的STL库中&#xff0c;例如&#xff1a;vector&#xff0c;它一般采用的是双倍扩容法&#xff0c;加入1000个数据装满了&#xff0c;现在需要又加一个&#xff0c;那么就开辟了2000个数据的空间&#xff0c;那么当前就又999的数据空间暂…

Java的字符串的基础知识(必看)

目录 Java的字符串的基础知识(必看) String API的使用 String概述 创建String对象的两种方式 号比的是什么? 难点 经典String案例 易错点 StringBuilder 疑难点: StringJoiner 字符串相关类的底层原理 中文的存储原理 String的常见的构造方法 Java的字符串的基础…

github加速神器!解决github巨慢的问题,并且能够加速下载!另外推荐GitKraken -- 超好用的 Git 可视化工具

FastGithub github加速神器&#xff0c;解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。 下载地址&#xff1a; 清华云盘 2 部署方式 2.1 windows-x64桌面 双击运行FastGithub.UI.exe 2.2 windows-x64服务 fastgi…

WorkPlus最佳的内网通讯软件解决方案,助力企业构建高效沟通环境

高效的内部通讯对于团队协作和工作效率至关重要&#xff0c;而选择适合的内网通讯软件&#xff0c;能够提升企业的通讯效能。WorkPlus以其卓越的性能和全面的功能&#xff0c;成为企业内网通讯软件的最佳选择。 为何选择WorkPlus作为企业的内网通讯软件呢&#xff1f;首先&…

西藏实景三维技术研讨交流会成功举办

2024年3月21-22日&#xff0c;西藏自治区“实景三维技术研讨交流会”在拉萨成功举办。 本次会议由西藏自治区自然资源厅、自然资源部重庆测绘院指导&#xff0c;西藏自治区测绘学会、西藏自治区地理信息产业协会主办&#xff0c;武汉大势智慧科技有限公司&#xff08;后简称“…

Java多线程实战-从零手搓一个简易线程池(二)线程池与拒绝策略实现

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️本系列源码仓库&#xff1a;多线程并发编程学习的多个代码片段(github) &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正…

【每日一题 | 动态规划】访问完所有房间的第一天

文章目录 Tag题目来源解题思路方法一&#xff1a;动态规划 写在最后 Tag 【动态规划】【数组】【2024-03-28】 题目来源 1997. 访问完所有房间的第一天 解题思路 方法一&#xff1a;动态规划 定义状态 定义 f[i] 表示第一次到达房间 i 的日期编号。 根据题意&#xff0c;…

VMware vSAN OSA存储策略 - 基于虚拟机的分布式对象存储

简介 博客&#xff1a;https://songxwn.com/ 存储策略 (Storage Policy) 是管理员定义的一组规则&#xff0c;这组规则定义了数据对象在 vSAN 存储上是如何保存的&#xff0c;存储策略定义了数据存储的可靠性、访问性能等特性。vSAN 提供了基于存储策略的存储管理 SPBM (Stor…

upload-labs-master靶场训练笔记

2004.2.17 level-1 &#xff08;前端验证&#xff09; 新建一个写有下面一句话木马的php文件&#xff0c;然后把后缀改为png <?php eval($_POST["abc"]); ?> 用bp抓包后更改文件后缀为php 再用蚁剑等工具链接即可拿下shell level-2 &#xff08;后端…

js改变图片曝光度(高亮度)

方法一&#xff1a; 原理&#xff1a; 使用canvas进行滤镜操作&#xff0c;通过改变图片数据每个像素点的RGB值来提高图片亮度。 缺点 当前项目使用的是svg&#xff0c;而不是canvas 调整出来的效果不是很好&#xff0c;图片不是高亮&#xff0c;而是有些发白 效果 代码 …

量子通信达新高度!两大诺奖技术联手,铸就前所未有的高效纠缠光子源

滑铁卢大学量子计算研究所&#xff08;IQC&#xff09;的科学家们成功地融合了两项诺贝尔奖级别的研究成果&#xff0c;从而在量子通信领域取得了重大进展。他们现在能够通过量子点技术高效生成几乎完美的纠缠光子对&#xff0c;这一突破性成果已在《通信物理学》&#xff08;C…

实例:NX二次开发求取封闭曲线的面积(多个封闭曲线)

一、概述 最近在NX二次开发群里有人推了一篇关于写求取封闭曲线面积的文章。针对小白的我决定试着做一做&#xff0c;期间遇到了很多问题&#xff0c;全部用NXOpenC通过录制代码进行修改&#xff0c;最后发现老是有问题&#xff0c;后来通过ufun转化解决了问题&#xff0c;个人…

如何使用在项目中使用echarts

一、使用echarts的好处和作用 ECharts 是一个强大的数据可视化库&#xff0c;主要用于在网页上创建丰富多彩的交互式图表和地图。一些 ECharts 的好处和作用包括&#xff1a; 好处&#xff1a; 丰富的图表类型&#xff1a;ECharts 提供了各种常见的图表类型&#xff0c;如折线…

python的一些知识点

在C C Java中&#xff0c;基本数据类型变量&#xff08;将常量数据存储在变量空间当中&#xff09; int a 3; int b 4; 在C C中&#xff0c;指针变量&#xff08;存储的是变量的物理内存地址&#xff09; int a 3; int* b; b &a; int** c; c &b; printf("%d&…

jira安装与配置

1. 环境准备 环境要求 1) JDK1.8以上环境配置 2) Mysql数据库5.7.13 3) Jira版本7及破解包 1.1 JDK1.8安装配置 1) 首先下载 JDK1.8&#xff0c; - 网址&#xff1a;https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html - windows64 版&am…

Vue3气泡卡片(Popover)

效果如下图&#xff1a;在线预览 APIs 参数说明类型默认值必传title卡片标题string | slot‘’falsecontent卡片内容string | slot‘’falsemaxWidth卡片内容最大宽度string | number‘auto’falsetrigger卡片触发方式‘hover’ | ‘click’‘hover’falseoverlayStyle卡片样式…
最新文章