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

git基本命令

在这里插入图片描述

1、安装

介绍

安装

配置

2、git基本命令

2.1 基本操作

#1、查看空目录的git状态
$ git status
fatal: not a git repository (or any of the parent directories): .git#2、初始化本地仓库:创建一个git的目录管理当前项目的所有文件版本
$ git init
Initialized empty Git repository in D:/gitworkspace/git-test1/.git/#3、查看本地仓库的状态
$ git status
On branch master  # 当前在master分支开发
No commits yet # 还没有任何提交记录
nothing to commit (create/copy files and use "git add" to track) # 当前git仓库管理的项目 还没有任何内容可以提交  可以创建/拷贝文件 使用git add 追踪文件# 4、新建文件
$ vim hello1.txt#5、查看本地仓库的状态
$ git status
On branch master
No commits yet
Untracked files:  # 显示新增的还未被git追踪的文件列表(use "git add <file>..." to include in what will be committed) # git add 文件名 可以添加文件追踪等待后面提交到本地仓库hello1.txt
nothing added to commit but untracked files present (use "git add" to track)# 6、git add 文件: 添加文件到暂存区(等待提交)
$ git add hello1.txt#7、查看本地仓库状态
$ git status
On branch master
No commits yet
Changes to be committed: # 暂存区有改变等待提交# 也可以使用git rm --cached 文件 删除暂存区的文件(use "git rm --cached <file>..." to unstage)new file:   hello1.txt # 新创建文件 hello1.txt#8、删除暂存区管理的指定文件 再查看工作空间的状态
$ git rm --cached hello1.txt
rm 'hello1.txt'$ git status
On branch master
No commits yet
Untracked files:(use "git add <file>..." to include in what will be committed)hello1.txt
nothing added to commit but untracked files present (use "git add" to track)# 9、添加文件到暂存区
$ git add hello1.txt#10、提交暂存区内容到本地仓库: 此时文件才被git本地版本仓库记录了当前的版本
$ git commit -m '新增hello1文件'
[master (root-commit) b13ede4] 新增hello1文件1 file changed, 1 insertion(+)create mode 100644 hello1.txt#11、查看commit后仓库的状态
$ git status
On branch master
nothing to commit, working tree clean # 工作目录下没有和git版本不一样的文件

2.2 修改&多文件提交

# 修改文件
$ vim hello1.txt
# 新增文件
$ vim hello2.txt
# 添加需要提交的所有文件到暂存区
$ git add .
# 提交更新
$ git commit -m '修改hello1&新增hello2'

2.3 暂存区缓存的使用

# 丢弃暂存区内容 
$ git restore --staged
# 使用暂存区文件恢复 覆盖本地修改
git  checkout .
git  checkout 暂存区要恢复的文件名

2.4 版本穿梭&日志查看

git log # 查看提交的历史记录详细日志
git reflog # 查看简要日志
git reset --hard 32746e8  # 穿梭到指定id的版本

1、本地文件修改 添加到暂存区

2、本地文件修改 不添加到暂存区

3、git reset版本穿梭

git reset --hard 32746e8   : 版本穿梭时直接使用指定版本的文件替换本地相同文件   会丢失穿梭版本前的修改- 被git管理的文件:无论修改后添加到暂存区了 还是修改了没有添加到暂存区版本穿梭使用了--hard 数据都会丢失- 未被git管理的文件:不会被删除
git reset --soft 32746e8:穿梭前的文件修改无论有没有添加到暂存区 仍然存在
git init # 初始化本地库
git add .  # 添加修改到暂存区
git commit -m '注释' # 提交暂存区
git log/reflog  # 查看提交记录
git reset --hard/--soft  提交id  #版本穿梭到指定commit_id

3、分支操作

# 列出所有分支: *指向的是正在使用的分支
$ git branch -l
* master
# 新建分支: 基于当前分支所在的版本 新建了分支副本(和现在分支状态一样)
$ git branch dev
# 查看分支详细信息
$ git branch -vdev    8257e76 修改hello1-添加3
* master 8257e76 修改hello1-添加3
# 切换分支: 也对应一个提交记录,切换分支时就是找最新的分支的提交id切换过去
$ git checkout dev
$ git checkout master
feature分支只是为了功能开发
dev分支:可能会创建多个feature分支- 写好的feature功能分支可以通过分支合并的方式合并到dev分支
# 新建功能分支:并编写代码提交
$ git checkout feature-test1
# 将功能分支合并到dev分支
# 切换到dev分支
$ git checkout dev
Switched to branch 'dev'
# dev合并功能分支
$ git merge feature-test1
#### dev分支没有修改hello3文件,ft分支修改了hello3文件

合并冲突:

# 合并时 文件被多个分支同时修改,会出现合并冲突
# 1、在dev分支修改hello3文件
# 2、切换到feature分支
$ git checkout feature-test1
# 3、ft分支修改hello3文件  提交到本地仓库#### 分支合并: dev合并ft(dev和ft同时修改了同一个文件)
$ git checkout dev
Switched to branch 'dev'
$ git merge feature-test1
Auto-merging hello3.txt
CONFLICT (content): Merge conflict in hello3.txt #hello3文件出现合并冲突
Automatic merge failed; fix conflicts and then commit the result. # 需要手动解决合并冲突
(dev|MERGING) # 表示dev分支合并其他的分支时 出现了合并冲突
# 查看冲突文件:
$ git status
On branch dev
You have unmerged paths.(fix conflicts and run "git commit")(use "git merge --abort" to abort the merge)Unmerged paths:(use "git add <file>..." to mark resolution)both modified:   hello3.txtno changes added to commit (use "git add" and/or "git commit -a")
# 解决冲突:
vim hello3.txtft-分支 ....
<<<<<<< HEAD     # 表示当前分支冲突的内容
dev分支---1111
=======			# 结束
ft-分支--222222222222222222
>>>>>>> feature-test1  # 表示合并过来的冲突内容# 删除git冲突标记行:将需要保留的代码保留
# 添加解决冲突的文件到暂存区
$ git add hello3.txt
# 提交到本地仓库:
$ git commit -m 'dev分支-解决合并ft分支的冲突'
[dev 6d8bb24] dev分支-解决合并ft分支的冲突

删除分支

$ git branch -d feature-test1
Deleted branch feature-test1 (was ac41177).

4、远程仓库

局域网:gitlab(github和gitee都是使用gitlab搭建的) 自己搭需要自己的服务器

公网:gitee / github

4.1 在gitee中创建远程仓库

最好不要初始化仓库(默认会创建文件)

可以拷贝创建后的远程仓库地址

4.2 将本地仓库推送到远程仓库

git remote add origin 远程仓库地址
git push origin master   (推送到远程仓库的master分支)
# 拉取远程仓库最新的更新到本地
git pull origin master    

4.3 协作开发

# 新用户可以克隆远程仓库的项目到本地
git clone 远程仓库地址#新用户基于克隆的项目可以继续开发# 提交更新到本地仓库
git add .
git commit -m 'xxxx'
# 推送到远程仓库: 克隆的项目默认的远端origin->仓库地址已存在
git push origin master

4.3.1 远程仓库邀请协作开发成员

仓库设置中可以邀请协作开发成员

被邀请的用户在 通知中接收邀请

4.3.2 协作开发冲突解决

多个程序员 同时基于同一个版本的仓库进行修改,如果修改了相同的文件,推送时就会出现版本冲突

A:程序员
clone远程仓库
修改h文件
提交到本地仓库推送
B:程序员
clone远程仓库
修改h文件
提交到本地仓库推送:推送的文件在远程仓库中包含了其他的更新
出现了冲突
$ git push origin master
To https://gitee.com/xgatguigu/git-test1.git! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/xgatguigu/git-test1.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.解决:三板斧 拉取更新 合并冲突 再提交推送
B程序员推送冲突,需要他解决问题
1、拉取更新:
git pull origin master
2、合并冲突解决
编辑冲突文件 解决
3、提交推送
git add .
git commit -m ''
git push origin master

4.4 gitee配置ssh免密登录

参考课件生成秘钥

拷贝仓库ssh地址进行推送

5、idea集成git

相关文章:

git基本命令

1、安装 介绍 安装 配置 2、git基本命令 2.1 基本操作 #1、查看空目录的git状态 $ git status fatal: not a git repository (or any of the parent directories): .git#2、初始化本地仓库&#xff1a;创建一个git的目录管理当前项目的所有文件版本 $ git init Initializ…...

GPU性能实时监测的实用工具

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

概率论中的 50 个具有挑战性的问题 [第 6 部分]:Chuck-a-Luck

一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒&#xff08;Frederick Mosteller&#xff09;的《概率论中的五十个具有挑战性的问题与解决方案》&#xff09;一书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇…...

windows搭建MySQL主从补充说明

这3种情况是在HA切换时&#xff0c;由于是异步复制&#xff0c;且sync_binlog0&#xff0c;会造成一小部分binlog没接收完导致同步报错。 第一种&#xff1a;在master上删除一条记录&#xff0c;而slave上找不到。 第二种&#xff1a;主键重复。在slave已经有该记录&#xff…...

Python:GUI Tkinter

GUI编程 GUI编程&#xff08;Graphical User Interface Programming&#xff09;指的是用于创建图形用户界面的程序设计。这种界面采用图形方式显示信息&#xff0c;让用户可以通过图形化的方式与程序进行交互&#xff0c;而不是仅仅通过文本命令。GUI编程使得软件更加直观易用…...

制作一个可以离线安装的Visual Studio安装包

须知 前提条件&#xff0c;需要电脑可以正常上网且网速还行&#xff0c;硬盘可以空间容量足够大&#xff0c;怎么判断容量够用&#xff1f;由组件数量的多少来决定。Visual Studio 频道和发布节奏 https://learn.microsoft.com/zh-cn/visualstudio/productinfo/release-rhythm…...

机器学习——决策树(三)

【说明】文章内容来自《机器学习——基于sklearn》&#xff0c;用于学习记录。若有争议联系删除。 1、案例一 决策树用于是否赖床问题。 采用决策树进行分类&#xff0c;要经过数据采集、特征向量化、模型训练和决策树可视化4个步骤。 赖床数据链接&#xff1a;https://pan…...

模型量化之AWQ和GPTQ

什么是模型量化 模型量化&#xff08;Model Quantization&#xff09;是一种通过减少模型参数表示的位数来降低模型计算和存储开销的技术。一般来说&#xff0c;模型参数在深度学习模型中以浮点数&#xff08;例如32位浮点数&#xff09;的形式存储&#xff0c;而模型量化可以…...

一个简单的 HTTP 请求和响应服务——httpbin

拉取镜像 docker pull kennethreitz/httpbin:latest 查看本地是否存在存在镜像 docker images | grep kennethreitz/httpbin:latest 创建 deployment&#xff0c;指定镜像 apiVersion: apps/v1 kind: Deployment metadata:labels:app: httpbinname: mm-httpbinnamespace: mm-…...

2024黑龙江省职业院校技能大赛暨国赛选拔赛应用软件系统开发赛项(高职组)赛题第3套

2024黑龙江省职业院校技能大赛暨国赛选拔赛 应用软件系统开发赛项&#xff08;高职组&#xff09; 赛题第3套 目录&#xff1a; 需要竞赛源码资料可以私信博主。 竞赛说明 模块一&#xff1a;系统需求分析 任务1&#xff1a;制造执行MES—质量管理—来料检验&#xff08;…...

云原生Kubernetes系列 | Kubernetes Secret及ConfigMap

云原生Kubernetes系列 | Kubernetes Secret及Configmap 1. Secret及Configmap使用背景简介2. Secret2.1. Secret创建方式2.1.1. 命令行方式2.1.2. 文件方式2.1.3. 变量方式2.1.4. YAML文件方式2.2. Secret使用方式2.2.1. 用于传递配置文件2.2.3. 用于传递变量3. ConfigMap1. Se…...

dev express 15.2图表绘制性能问题

dev express 15.2 绘制曲线 前端代码 <dxc:ChartControl Grid.Row"1"><dxc:XYDiagram2D EnableAxisXNavigation"True"><dxc:LineSeries2D x:Name"series" CrosshairLabelPattern"{}{A} : {V:F2}"/></dxc:XYDi…...

单链表的创建,插入及删除(更新ing)

1.单链表创建 ptr为头指针&#xff0c;指向头结点地址&#xff0c;即该指针变量的值为头结点地址&#xff1b; mov为一个辅助指针&#xff0c;用于将链表尾节点的指针域next指向新增节点的地址. search为一个辅助指针&#xff0c;用于遍历链表各节点地址&#xff0c;打印各节…...

C#/WPF 播放音频文件

C#播放音频文件的方式&#xff1a; 播放系统事件声音使用System.Media.SoundPlayer播放wav使用MCI Command String多媒体设备程序接口播放mp3&#xff0c;wav&#xff0c;avi等使用WindowsMediaPlayer的COM组件来播放(可视化)使用DirectX播放音频文件使用Speech播放(朗读器&am…...

如何使用宝塔面板+Discuz+cpolar内网穿透工具搭建可远程访问论坛服务

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&a…...

【HBase】——简介

1 HBase 定义 Apache HBase™ 是以 hdfs 为数据存储的&#xff0c;一种分布式、可扩展的 NoSQL 数据库。 2 HBase 数据模型 • HBase 的设计理念依据 Google 的 BigTable 论文&#xff0c;论文中对于数据模型的首句介绍。 Bigtable 是一个稀疏的、分布式的、持久的多维排序 m…...

JAVA 有关PDF文件和图片文件合并并生产一个PDF

情景&#xff1a; 1.文件列表包含多个图片和PDF时需要对文件进行合并 2.合并时保持文件顺序 开淦&#xff1a; 一、导入POM <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</ve…...

八股文打卡day10——计算机网络(10)

面试题&#xff1a;HTTP1.1和HTTP2.0的区别&#xff1f; 我的回答&#xff1a; 1.多路复用&#xff1a;HTTP1.1每次请求响应一次都得建立一次连接&#xff0c;HTTP1.1引入了持久连接Connection&#xff1a;Keep-Alive&#xff0c;可以建立一次连接&#xff0c;进行多次请求响…...

Spring Boot学习:Flyway详解

Flyway Flyway 是一款开源的数据库版本管理工具&#xff0c;用于管理和自动化数据库结构的变更。它可以跟踪和管理数据库的版本控制&#xff0c;并在应用程序启动时自动执行升级或回滚操作。 使用Flyway&#xff0c;你可以将数据库的变更以可重复且可控的方式应用到不同环境中…...

Spark编程实验三:Spark SQL编程

目录 一、目的与要求 二、实验内容 三、实验步骤 1、Spark SQL基本操作 2、编程实现将RDD转换为DataFrame 3、编程实现利用DataFrame读写MySQL的数据 四、结果分析与实验体会 一、目的与要求 1、通过实验掌握Spark SQL的基本编程方法&#xff1b; 2、熟悉RDD到DataFram…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...