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://xiahunao.cn/news/2906255.html

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

相关文章

vue3编写倒计时效果

说明:来自CSDN-问答板块,题主提问。 需求:如何通过表单控制倒计时开始时间,比如设定倒计时五分钟,循环几次,点击开始倒计时按钮,就让他从5分00秒,开始每秒减少,然后到0分…

Android 12中配置Selinux相关权限问题

1. 从logcat中过滤avc信息 avc: denied { read write } for comm"vendor.demo" name"ttyHW5" dev"tmpfs" ino610 scontextu:r:hal_gnss_default:s0 tcontextu:object_r:device:s0 tclasschr_file permissive1 avc: denied { ioctl } for comm&q…

【CTFshow 电子取证】套的签到题

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

模型 可编程思想

系列文章 分享 模型,了解更多👉 模型_总纲目录。一切皆有可能。 1 可编程思想的应用 1.1 自动化智能投资顾问服务 传统的财富管理服务通常需要专业的财务顾问来为客户提供投资建议和资产管理服务。随着技术的发展,越来越多的投资者开始寻求…

mars3d兼容老版本Chrome 浏览器的附件参考记录

问题 源代码里面是es5的写法,怎么在浏览器上就转换了。 mars3d会将es5转es6吗? 看加载的Cesium.js源代码没有问题,但是模块里面的源代码已经转换了,再低版本浏览器上面会无法运行“Uncaught SyntaxError: Unexpected token ?”…

怎么在ADT里调整ABAP代码的格式

这个标题我实在是不咋会写。 具体就是,我在Eclipse里面写代码,但是不知道怎么调整好看的格式。 由于我是个ABAP渣渣,我查询了一下怎么调整。现分享如下: 首先在Eclipse里面选Windows下面的preferences,去把ABAP Development底下…

Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器

Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器 1、什么是Docker Swarm?2、Docker Swarm 与 Docker Compose的区别3、创建一个Swarm集群(1-Manager,2-Worker)1、资源准备2、初始化Swa…

AIGC重塑金融 | 大模型在金融行业的应用场景和落地路径

作者:林建明 来源:IT阅读排行榜 本文摘编自《AIGC重塑金融:AI大模型驱动的金融变革与实践》,机械工业出版社出版 目录 01 大模型在金融领域的 5 个典型应用场景 02 大模型在金融领域应用所面临的风险及其防范 03 AIGC 技术的科…

前端学习<二>CSS基础——09-CSS案例讲解:博雅互动

前言 CSS已经学了一些基础内容了,我们来讲解一个小案例吧。以博雅互动的官网首页举例。 版心 首页的版心如下: 这里我们要普及一个概念,叫“版心”。版心是页面中主要内容所在的区域。 比如说,网站左上角的logo,设计…

课堂练习:环境体验——Linux 文件操作命令

任务描述 第二个任务就是了解Linxu的文件查看命令,文件编辑基本命令。 相关知识 为了完成本关任务,你需要掌握: 1.文件查看命令。 2.文件编辑基本命令。 文件查看命令 我们要查看一些文本文件的内容时,要使用文本编辑器来查看…

【案例·增】一条insert语句批量插入多条记录

问题描述: 往MySQL中的数据库表中批量插入多条记录,可以使用 SQL 中的 ((), ()…)来处理 案例: INSERT INTO items(name,city,price,number,picture) VALUES(耐克运动鞋,广州,500,1000,003.jpg),(耐克运动鞋2,广州2,500,1000,002.jpg);规则…

jsp用户登录界面

主界面 <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head><meta charset"UTF-8"><title>登录界面</title> </head> <body bgcolor"#faebd7"> <form…

基于springboot大学生社团活动平台

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;网络管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信…

二维数组定义 求和,最值,求平均值 JS

定义二维数组 二维数组的求和&#xff0c;最值&#xff0c;求平均值 Eg1 // 二维数组 const matrix [[1, 2, 3],[4, 5, 6],[7, 8, 9] ];// 初始化求和、最大值和最小值 let sum 0; let max Number.MIN_VALUE; let min Number.MAX_VALUE;// 遍历二维数组 for (let i 0; i…

智慧工厂视频汇聚与安全风险智能识别预警方案设计与功能

在智慧工厂的建设中&#xff0c;智能视频监控方案扮演着至关重要的角色。它不仅能够实现全方位、无死角的监控&#xff0c;还能够通过人工智能技术&#xff0c;实现智能识别、预警和分析&#xff0c;为工厂的安全生产和高效运营提供有力保障。 TSINGSEE青犀智慧工厂智能视频监…

HTML网站的概念

目录 前言&#xff1a; 1.什么是网页&#xff1a; 2.什么是网站&#xff1a; 示例&#xff1a; 3.服务器&#xff1a; 总结&#xff1a; 前言&#xff1a; HTML也称Hyper Text Markup Language&#xff0c;意思是超文本标记语言&#xff0c;同时HTML也是前端的基础&…

AI赋能微服务:Spring Boot与机器学习驱动的未来应用开发

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟。提供嵌入式方向的学习指导、简历面…

qt学习第三天,qt设计师的第一个简单案例

3月25&#xff0c;应用qt设计师&#xff0c;手动设计界面形状 ​ 如何启动qt设计师&#xff0c;找到对应的安装地点&#xff0c;对应你自己安装的pyside6或其他qt的安装路径来找 ​ 应用qt设计师的优点是不用敲代码然后慢慢调节框框大小&#xff0c;位置等、可以直接修改…

2、Cocos Creator 下载安装

Cocos Creator 从 v2.3.2 开始接入了全新的 Dashboard 系统&#xff0c;能够同时对多版本引擎和项目进行统一升级和管理&#xff01;Cocos Dashboard 将做为 Creator 各引擎统一的下载器和启动入口&#xff0c;方便升级和管理多个版本的 Creator。还集成了统一的项目管理及创建…

数据库高级查询【mysql】

数据库高级查询【数据库】 前言版权推荐数据库高级查询行转列统计数据 CASE WHEN 条件 THEN 结果1 ELSE 结果2 END数据库查询带排名建表查询带排名&#xff0c;排名连续查询带排名&#xff0c;排名不连续查询带排名&#xff0c;按行号 Mysql数据库函数常用函数最后 前言 2024-…