Git:从配置到合并冲突
目录
1.前言
2.Git的下载与初始化配置
3.Git中新建仓库
4.Git的工作区域和文件状态
5.Git中查看操作和提交记录
6.Git中添加和提交文件
7.Git中回退提交版本
8.Git中查看版本间的差异
9.Git中删除文件
10.Git中忽略指定文件
11.Git中配置SSH密钥
12.Git中关联克隆仓库
13.Git中关联本地仓库和远程仓库
14.Git中拉取远程仓库内容和提交本地仓库
15.Git中的分支
16.Git中解决合并冲突
前言
本章将重点讲解Git的使用。Git是是目前世界上最流行的版本控制系统,广泛应用于软件开发中,帮助开发者管理代码的变更历史,支持多人协作开发。了解如何使用Git,如何提交代码,如何解决冲突,能帮助我们更快的上手团队项目
Git的下载与初始化配置
关于Git的下载可以通过官网进行下载,以下是官网链接:
https://git-scm.com/downloadshttps://git-scm.com/downloads
图1.如何下载Git
在下载完Git后,我们可点击右键,选择Open Git Bash here打开Git命令窗口
图2.打开Git命令窗口
打开窗口后,我们可以通过以下命令对Git进行简单的使用以及配置:
1.使用git -v命令查看Git版本信息
git -v
图3.查看Git版本信息
2.使用git -config命令配置信息
git config --global --list //查看配置信息
git config --global user.name "名字" //配置用户名
git config --global user.email "邮箱" //配置用户邮箱
git congig --global credential.helper store //保存配置信息//其中--global代表全局配置,所有仓库都生效
//可替换为--system,代表系统配置,对所有用户的生效
图4.初始化Git配置信息
Git中新建仓库
在Git中有两种命令用于创建仓库,所谓仓库就类似于文件夹,区别于普通文件夹的点在于仓库存在一个隐藏的.git文件,该文件存放了仓库的所有数据,若删除了.git文件则代表删除了该仓库。以下便是创建仓库的两种方式:
1.使用git init命令在指定文件夹下创建仓库
git init
图5.使用git init命令创建仓库
2.使用git clone命令克隆远程仓库
git clone "远程地址"示例:git clone https://github.com/3020Xmy/GPTDemo
图6.使用git clone命令克隆远程仓库
Git的工作区域和文件状态
Git的工作区域分为工作区,暂存区和本地仓库,可参考下图:
图7.Git的工作区域
Git的文件状态分为以下四种:
1.未跟踪:新创建的文件,未被Git管理的文件
2.未修改:被Git管理的文件,但内容未被修改的文件
3.已修改:被Git管理的文件,且内容被修改的文件
4.已暂存:在已修改的状态下,被添加到暂存区的文件
Git中查看操作和提交记录
由于在多人项目中,每一个人的操作和提交记录都不一样,我们可以通过以下几个命令查看用户的操作记录和提交记录:
1.使用git reflog命令查看操作历史记录
git reflog
图8.查看操作历史记录
2.使用git log命令查看提交目录
git log
图9.查看提交目录
3.使用git log --online命令查看简洁的提交记录
git log --online
图10.查看简洁的提交记录
Git中添加和提交文件
在Git中如果要把写好的代码提交到项目中,需要将存放于工作区的文件使用add指令提交至暂存区后,再使用commit命令提交至本地仓库,下面介绍几个命令方便对文件进行状态的跟踪,添加和提交等操作
1.使用git status命令查看仓库状态
git status
2.使用git add命令将文件添加至暂存区
git add 文件名 //添加指定文件
git add . //添加所有文件示例:git add 1.txt
3.使用git commit命令将文件提交至本地仓库
git commit -m "提交备注" //使用-m备注提交的信息
git commit //提交至本地仓库(默认跳转到Vim添加备注信息)示例:git commit -m "第一次提交"
4.使用git commit命令将文件提交至本地仓库
git commit -a -m "提交备注" //一次性完成添加和提交文件示例:git commit -a -m "第一次提交"
针对以上几个命令,是我们在使用Git的时候比较常用的命令
图11.文件的添加和提交操作
Git中回退提交版本
由于使用Git提交版本不一定是一次,而是多次。为了在当前版本出现问题后,我们能通过还原之前的代码来使其重构项目(当然这是下下策,但是好用,嘎嘎好用)。要实现这一功能,我们需要使用reset命令:
1.使用git reset --hare命令回退版本,工作区和暂存区不会保存内容
git reset --hare "版本号"
图12.使用git reset --hare命令回退版本
2.使用git reset --sort命令回退版本,工作区和暂存区会保存内容
git reset --sort "版本号"
图13.使用git reset --sort命令回退版本
3.使用git reset -- mixed命令回退版本,工作区保存内容,暂存区不保存内容
git reset -- mixed "版本号"
图14.使用git reset -- mixed命令回退版本
Git中查看版本间的差异
在使用Git提交的版本之间会存在代码或文件间的差异,要阅读差异了解版本迭代后更新了什么数据,可以使用diff命令来查看版本间的差异,以下便是git diff命令的使用方式:
1.使用git diff命令比较工作区和暂存区间的差异
git diff
2.使用git diff HEAD命令比较工作区和暂存区与本地仓库间的差异
git diff HEAD
3.使用git diff --cached命令比较暂存区与本地仓库间的差异
git diff --cached
4.使用git diff --staged命令比较暂存区与本地仓库间的差异
git diff --staged
5.使用git diff命令比较版本间的差异
git diff "版本号1" "版本号2"
6.使用git diff命令比较版本间指定文件的差异
git diff "版本号1" "版本号2" "文件名"
7.使用git diff命令比较分支间的差异
git diff "分支号1" "分支号2"
图15.使用git diff命令查看版本间的差异
Git中删除文件
Git中删除文件的操作与Linux中类似,也是使用rm命令,区别在于前面还需要加上git,而且在使用Git删除文件后,不要忘记提交,以下就是rm命令的使用方法:
1.使用git rm命令将文件从工作区和暂存区删除
git rm "文件名"
2.使用git rm --cached命令把暂存区中的文件删除,保留工作区的文件
git rm --cached "文件名"
3.使用git rm命令递归的删除某个目录下的所有文件
git rm -r *
图16.使用git rm命令删除指定文件
Git中忽略指定文件
在Git中存在一个.gitignore文件,该文件用于将指定的文件忽略,不保存至版本库中。在Git中有以下几个文件建议忽略:
1.系统或者软件自动生成的文件
2.编译产生的中间文件和结果文件
3.运行时生成的日志文件,缓存文件,临时文件
4.涉及身份,密码,口令,密钥等敏感信息文件
如何将指定的文件添加至.gitignore文件中呢?可以使用以下命令:
1.使用echo命令将指定文件添加至.gitignore文件
echo "文件名" > .gitignore
图17.使用echo命令忽略指定文件
2.使用vi命令修改.gitignore文件忽略指定文件
图18.使用vi命令忽略指定文件
使用.gitignore命令忽略的文件命名规则符合Blob模式的匹配,具体参考如下:
1.*:匹配任意字符
2.?:匹配单个字符
3.[]:匹配列表中单个字符
4.**/:匹配任意长度的目录结构,包括子目录
*.txt //将匹配任何以 .txt 结尾的文件,如WildPointer.txt 等
?.txt //将匹配任何以单个字符开头和.txt结尾的文件,如a.txt等
[abc].txt //将匹配以a、b或c开头和.txt结尾的文件,如a.txt等
**/*.txt //将匹配任意目录下的任何.txt 文件
PS:使用.gitignore命令忽略的文件不能是已经提交到版本库中的文件
Git中配置SSH密钥
要使用Git关联本地仓库和远程仓库,先需要在GitHub中创建一个仓库,具体参考下图:
图19.在GitHub中创建仓库
创建好仓库后,我们需要配置SSH密钥,以下是配置SSH密钥的步骤:
1.进入Git根目录中的.shh文件(位于安装Git的路径下的etc文件中)
2.使用ssh-keygen -t rsa -b 4096命令新建SSH密钥
ssh-keygen -t rsa -b 4096
3.生成的文件中,将以.phb结尾的文件(公钥文件)设置到GitHub中
图20.新增SSH密钥
4.创建config文件,在访问GitHub时指定使用的SSH密钥
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.shh/"文件名"
PS:用于博主已经配置了SSH密钥,所以这里简略概括流程,具体可以百度其他详细教学,具体的了解配置SSH密钥的过程,确保密钥的配置成功
Git中关联克隆仓库
在Git中可以使用clone命令克隆仓库,在克隆的实现前需要先配置好SSH密钥
git clone "仓库地址"示例:git clone https://github.com/3020Xmy/GPTDemo
Git中关联本地仓库和远程仓库
当我们在GitHub创建好仓库后,我们先在本地创建好仓库,返回到GitHub创建仓库完成的页面会提示你如何关联本地仓库:
图21.关联本地仓库和远程仓库
在关联完本地仓库和远程仓库后,我们可以使用git remote -v命令查看当前窗口对应的远程仓库和别名:
git remote -v
图22.查看当前仓库关联远程仓库
Git中拉取远程仓库内容和提交本地仓库
在Git中要实现拉取远程仓库内容和提交本地仓库分别需要执行两个命令:
1.git pull:将远程仓库的内容更新至本地仓库
git pull //将远程仓库的内容更新至本地仓库
2.git push:将本地仓库的内容更新至远程仓库
git push //将本地仓库的内容更新至远程仓库
Git中的分支
Git 分支是 Git 的一个核心功能,它允许开发者在不同的开发线上独立工作,而不会影响主代码库。以下是 Git 分支的一些基本概念和操作:
1.主分支:通常是主要的、稳定的分支,包含了所有经过测试和审核的提交
2.开发分支:通常基于主分支创建,用于开发新功能或进行较大更改
3.特性分支:从开发分支创建,用于开发特定的新功能或修复一个特定的问题
4.发布分支:通常在准备发布新版本时创建,用于最终的测试和准备发布
图23.分支示例
在了解Git中分支的概念后,我们需要了解Git中对分支的操作:
1.git branch命令查看当前仓库的所有分支
git branch
2.git branch "分支名"命令创建新的分支
git branch "分支名"
示例: git breanch Wild
3.git checkout "分支名"命令切换到指定的分支
git checkout "分支名"
示例:git checkout Wild
4.git switch "分支名"命令切换到指定的分支(建议使用)
git switch "分支名"
示例:git switch Wild
5.git merge "分支名"命令将指定的分支合并到当前分支
git merge "分支名"
示例:git merge Wild
6.git log --graph --oneline --decorate --all命令查看分支图
git log --graph --oneline --decorate --all
7.git branch -d "分支名"命令删除被合并的分支(只能删除被合并的)
git branch -d "分支名"
示例:git branch -d Wild
8.git branch -D "分支名"命令强制删除分支
git branch -D "分支名"
示例:git branch -D Wild
图24.分支创建与查看示例
PS:使用git switc切换分支是因为该命令更直观,且会提供异常警告
Git中解决合并冲突
在合并分支时,可能会发送合并冲突的问题,这通常发生在两个或多个开发者对同一部分代码进行了更改,而这些更改在合并时无法自动合并,此时则需要我们解决冲突,具体操作如下:
1.冲突产生的提示:
图25.冲突提示
2.查看冲突文件
图26.查看冲突文件
3.解决冲突
图27.解决冲突
相关文章:
Git:从配置到合并冲突
目录 1.前言 2.Git的下载与初始化配置 3.Git中新建仓库 4.Git的工作区域和文件状态 5.Git中查看操作和提交记录 6.Git中添加和提交文件 7.Git中回退提交版本 8.Git中查看版本间的差异 9.Git中删除文件 10.Git中忽略指定文件 11.Git中配置SSH密钥 12.Git中关联克隆仓库 13.Git中…...
leetcode hot100 之 最长公共子序列
题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(…...
短剧APP开发,新的“财富”
在数字化时代,开发短剧APP不仅是顺应潮流的必然选择,更是抓住市场机遇的关键所在。为确保短剧APP能有效地吸引并留住用户,以下是一些主要功能及其介绍: 1、短剧搜索 关键词搜索:用户可以通过输入关键词(如…...
Uniapp与第三方应用数据通讯
首先说明一点,这个只是uniapp代码编写的应用之间相互传递数据,uniapp编写的与其他语言编写的我尚不知道能不能传递。 应用1: plus.runtime.launchApplication({pname: "应用的appid",// extra 中可以自定数据,url和da…...
AI大模型战场:通用大模型与垂直大模型的角逐
随着人工智能技术的迅猛发展,AI大模型已成为推动科技进步的重要力量。然而,在AI大模型的战场上,通用大模型与垂直大模型之间的分化日益明显。两者各有其独特的优势和潜力,在不同的应用场景中发挥着重要作用。那么,在这…...
linux的一些知识点分享-------关于操作维护的一些知识点
Apache服务器的监听端口,默认为() Apache服务器的监听端口,默认为80。 vsftpd中,可以不需提供账号密码就能进行访问的用户是( ) 在vsftpd(Very Secure FTP Daemon)中,可以不需要提供账号密码就能进行访问的用户通常是匿名用户。…...
Python使用tkinter库设置背景图片、label显示位置和label设置显示图片
tkinter 设置背景图片 label显示位置 label设置显示图片 from tkinter import * import tkinter as tk from PIL import ImageTk from PIL import Imagedef get_img(filename, width, height):im Image.open(filename).resize((width, height))im ImageTk.PhotoImage(im)…...
OpenStack是什么?
OpenStack是一个开源的云计算管理平台项目,它是一系列软件开源项目的组合。该项目由美国国家航空航天局(NASA)和Rackspace合作研发并发起,旨在提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack不仅是一个软…...
2024下《系统规划与管理师》50个高频考点汇总!背就有效
2024上半年软考考试已经结束,有不少小伙伴已经开始准备下半年软考了,但是大家要注意:今年高项仅考上半年一次,下半年考的高级科目只有系规难度相对较低,系规需要学习的内容比高项少很多,高项第四版教程731页…...
软件游戏提示msvcp140.dll丢失的原因分析及解决方法
在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“计算机缺失msvcp140.dll”。那么,这个错误是什么意思呢?它会造成哪些问题?小编将从以下几个方面进行详细解析。 一,了解msvcp140.dll是什么 …...
备战 清华大学 上机编程考试-冲刺前50%,倒数第3天
T1:水滴 - 模拟 这是一个经典的游戏。 在一个 𝑛𝑚 的棋盘上,每一个格子中都有一些水滴。 玩家的操作是,在一个格子中加一滴水。 当一个格子中的水滴数超过了 4,这一大滴水就会因格子承载不住而向外扩散。扩散的规…...
docker的安装及docker常用命令
目录 环境介绍docker卸载docker安装docker镜像命令查看docker可用的镜像查看docker可安装的镜像安装镜像删除镜像 docker容器命令查看容器启动容器启动示例进入容器内部停止容器删除容器容器和主机之间的文件复制 docker网络命令创建docker网络查看docker网络删除docker网络 do…...
Dell服务器根据GPU温度调整风扇转速
前言 dell服务器自动风扇是根据CPU温度来调速的,我跑AI的时候cpu温度不高但是GPU温度很高导致显卡卡死PVE虚拟机直接挂起无法运行,我看了下也没有基于显卡温度调速的脚本,于是我就自己写了一个 基于ipmi工具 乌班图等linux先安装ipmi apt …...
快捷键专栏 IDEA、Navicat、电脑、Excle、Word等
标题 电脑篇windowsR 配合以下常用命令连上公司网线WiFi速度变慢问题解决Windows10 设置鼠标右键在此处打开cmd和Powershell窗口、关机打开电脑诊断工具系统设置常用设置查看电脑出场日期 systeminfo删除文件显示已在另一个程序打开?找回回收站删除的文件WindowsR输…...
卸载MySQL5.0,安装MySQL8.0
卸载MySQL 1、以管理员身份运行cmd,删除MySQL服务 2、卸载MySQL 3、删除残余文件 4、清楚注册表 winR -> regedit 5、删除环境变量 安装MySQL步骤 官方下载地址 https://www.mysql.com/downloads/ 以上步骤即完成MySQL数据库安装。...
苹果WWDC重磅发布的IOS 18、Apple Intelligence背后的技术分析!
2024年6月10日,在2024年WWDC全球开发者大会上,苹果推出了Apple Intelligence,这是深度集成到iOS 18、iPadOS 18和macOS Sequoia中的个人智能系统。 为了让大模型能在 iPhone 端侧跑,苹果还是做了很多事情的。接下来就跟大家介绍一…...
Linux基础IO【II】
今天,我们接着在上一篇文章的基础上,继续学习基础IO。观看本文章之前,建议先看:Linux基础IO【I】,那,我们就开始吧! 一.文件描述符 1.重新理解文件 文件操作的本质:进程和被打开文件…...
DevExpress学习系列文章
一:DevExpress Installed 二:Application UI 三:Data Management Controls 四:Skins 五:DevExpress 控件和库 系列文章相关代码:DevExpressDemo: DevExpress学习过程中的Demo...
在大数据时代:为何硬盘仍是数据中心存储的核心
在云计算和人工智能应用场景不断涌现的时代背景下,数据集的价值急剧上升,硬盘对于数据中心运营商来说变得比以往任何时候都更为关键。硬盘存储了全球大部分的艾字节(EB)数据,行业分析师预计,在艾字节持续增…...
安装TrinityCore NPCBot(尝试中)
安装TrinityCore NPCBot 基本安装方法 Follow TrinityCore Installation Guide (https://TrinityCore.info/) to install the server firstDownload NPCBots.patch and put it into your TrinityCore folderApply the patch using patch -p1 < NPCBots.patch command (crea…...
Java SE LTS版本商用收费,有那些开源的替代方案?
🚀 Java SE LTS版本商用收费,有那些开源的替代方案? 摘要 Java 对于云服务、大数据、电子商务、支付、欺诈和身份、交易等许多应用程序来说都是至关重要的语言。然而,Oracle 对 Java SE LTS 版本的商用收费政策引发了广泛关注和…...
Win系统 锁屏自动暂停音乐
Windows 的系统锁屏功能可以让我们在离开电脑前时保护我们的系统安全,而如果你正在播放音乐的话,锁屏开启后默认是继续播放的。 这就导致在公共场合下别人很容易能够通过你的电脑屏幕看到你在听什么,这里介绍一种通过 AutoHotkey 实现锁屏自动…...
ffmpeg实现视频播放 ----------- Javacv
什么是Javacv和FFmpeg? Javacv是一个专门为Java开发人员提供的计算机视觉库,它基于FFmpeg和Opencv库,提供了许多用于处理图 像、视频和音频的功能。FFmpeg是一个开源的音视频处理工具集,它提供了用于编码、解码、转换和播放音视频…...
解决更新Android Studio后下载Gradle超时
随着Android Studio的更新,所需要的最低Gradle版本也在变化,这时候构建项目的时候就需要先下载所需的Gradle发行版。对于Gradle构建项目,我们已经知道项目使用的Gradle是在根项目的gradle/wrapper/gradle-wrapper.properties文件中定义的&…...
智能合约漏洞类型
Are We There Yet? Unraveling the State-of-the-Art Smart Contract Fuzzers | Proceedings of the IEEE/ACM 46th International Conference on Software Engineering...
6.7.31 使用端到端训练的基于 EfficientNet 的卷积网络在双视图乳房 X 线摄影中进行乳腺癌诊断
最好的技术之一进行了两次迁移学习:第一种是使用在自然图像上训练的模型来创建“块分类器”,对子图像进行分类;第二种是使用块分类器扫描整个乳房 X 光检查并创建“单视图全图像分类器”。建议进行第三次迁移学习,以获得一个“双视图分类器”,以使用两个乳房 X 光检查视图…...
访问方法(反射)
文章目录 前言一、访问成员方法的方法二、Method类 1.常用方法2.实操展示总结 前言 为了实现在某类中随时可以调用其他类的方法,java.lang.reflect包中提供了Method方法类来实现该效果。每一个Method对象代表着一个方法,利用Methoc对象可以操纵相应的方法…...
探索Excel的隐藏功能:如何求和以zzz开头的列
哈喽,大家好,我是木头左! 步骤一:定位"zzz"开头的列 需要找到所有以"zzz"开头的列。在Excel中,你可以通过以下几种方法来实现: 手动查找:滚动查看列标题,找到…...
git:切换到指定的commit
背景 今天合并人家代码的时候,报冲突了,然后解决完冲突以后,发现有个冲突干错了,但是都已经commit了,所以我就想那就回到这次merge之前的我的分支的commit 解决过程 取消合并 我先查了能否直接取消合并,…...
js之事件监听以及相关案例
这里写目录标题 一级目录二级目录三级目录 Web APIs02一、事件监听1.定义2.调用语法3.事件监听三要素4.事件监听版本 二、事件类型随机点名之事件监听版本案例要求大致思路先获取dom对象理解程序运行 完整代码 一级目录 二级目录 三级目录 Web APIs02 一、事件监听 1.定义…...
心理学网站的建设/76人vs猛龙
ftp内网地址,使用公司网络可以访问到,但是通过正式环境的服务器就不可以 改为使用ftp的公网地址,并且将正式环境服务器的公网ip让对方加入白名单后,可以访问了,但是,只能操作cd, ls等命令,不能…...
丰田车营销网站建设的纲要计划书/怎么开自己的网站
现在大多数酒厂用的酒精有两种,一种叫薯干酒精,一种叫糖蜜酒精,这两种酒精市场价格基本在4000元至5000元一吨。用98度的酒精勾兑50度的酒,要加一倍的水,那么500毫升的酒成本才一块多钱,一吨酒加入的香精成本…...
网站出现wordpress/今天刚刚发生的新闻台湾新闻
MyBatis-plus快速入门 1.简介 MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,为了简化开发提交效率而存在。 官网文档地址: https://mp.baomidou.com/guide/ MyBatis-Plus 特性࿱…...
完整的网站开发/昭通网站seo
source insight 里编辑的时候,每次粘贴后,光标停留在粘贴内容的前面。 我想把它设定为 粘贴后,光标移动倒粘贴内容的后面。 怎么做? 这是个设置问题,按照下面的步骤设定就可以了。 Options->Preferences...->Ty…...
做货代在哪些网站能找到客户/百度推广在哪里
现在的汽油车上都有一个尾气净化装置,它的名字叫做三元催化器,其主要作用是将汽车尾气中的一氧化碳、碳氢化合物和氮氧化合物,进行氧化和还原处理,生成对大气无害的二氧化碳、氮气以及水,从而达到净化的结果。但是很多…...
网站做cdn需要多少钱/建立网站的主要步骤
这个章节的内容包含: 视图边界(“类型类”)其他类型边界高度类型化的类型&临时多态F-bounded多态/可递归类型结构化的类型抽象类型的成员类型擦除和Manifest实例学习:Finagle视图边界(“类型类”) 有时候你并不需要指定一个类型等价于另外一个类型&a…...