git企业的使用详细命令行操作

git是Linux创始人通过内核开发而创作的分布式版本的控制系统,而我们作为开发者需要开发与维护,避免不了版本的迭代和更新,git就是用来保存修改删除等操作的工具,可以记录代码改动情况,它能够保存代码的每个版本,每个版本文件中修改和删除git都会跟踪,通过追踪的方式使得开发者能够更有效率的获取到之前的版本,让开发的效率提高。
这里的HEAD指针指向master
通过 cat .git/HEAD查看
在这里插入图片描述

文章目录

  • 查看git是否安装以及配置
    • 配置别名
  • 创建文件和修改文件内容
      • 将本地仓库的文件放到暂存区
      • 取消暂存
      • 查看修改后的文件
      • 提交到版本库(commit)
      • 查看提交记录日志
  • 版本回退(git reset)
  • 撤销修改
      • 工作区的解决方式
      • 工作区暂存区存在
      • 在没有push情况下commit之后
  • 删除版本库文件
      • 方法1
      • 方法2
  • 分支管理
      • 切换分支
      • 合并分支
      • 删除分支
      • bug分支
      • 强制删除分支
  • 远程仓库
      • 克隆远程仓库
      • 将本地仓库传入到远程仓库中(push)
      • 拉取本地仓库的内容(pull)
      • 编辑不想git追踪的文件
  • 标签功能

查看git是否安装以及配置

  • git版本
# 查看git版本
git --version
# 查看git的安装路径
which git
  • 关于创建git仓库
#我是创建到了桌面
cd Desktop;
#创建目录进入
mkdir gitCode;
cd gitCode;
#初始化git仓库为空仓库
git init;
  • git中配置用户名和邮箱
#添加用户名和邮箱操作
git config user.name "用户名";
git config user.email "邮箱";
#取消用户名及邮箱
git config --unset user.name;
git config ==unset user.email;

#添加全球用户名和邮箱操作(global)
git config --global user.name "用户名";
git config --global user.email "邮箱";
#取消全局用户名及邮箱
git config --global --unset user.name;
git config --global --unset user.email;

#查看配置情况
git config -l;

#查看当前目录的绝对路径
pwd;

配置别名

#可以将status状态改为别名st
git config --global alias.st status

在这里插入图片描述


创建文件和修改文件内容

#创建文件
touch statement;
#使用vim来编辑文件
vim statement;
#当进入vim进行编辑,当编辑好后通过esc来进入命令模式,通过:wq回车退出保存.
#查看文件内容
cat statement;


将本地仓库的文件放到暂存区

#将该工作区的所有文件添加到暂存区
git add .
#指定文件可以多个包
git add docu1 docu2;


取消暂存

# 这里是查看当前仓库的状态查看是否对文件有修改
#绿色为暂存区文件,红色为没有放入暂存区
git status;
# 取消暂存
git rm --cached docu1 docu2;

查看修改后的文件

# 这里是查看当前仓库的状态查看是否对文件有修改
git status;
# 查看工作区和暂存区的差异(当add后再次进行修改)绿色为改动部分内容
git diff docu1;
# 查看版本库和工作区文件的区别
git diff HEAD -- docu1;


提交到版本库(commit)

git commit -m "文件的描述信息"

查看提交记录日志

git log --pretty;
#两种都可以
git log --pretty=oneline;

版本回退(git reset)

通过版本回退,返回到之前其他的版本
例如公司老板不喜欢这一版本,认为上一版本更好,这时候需要回退,拿到其他版本。

回退版本库的命令(git reset)
--soft只回退版本库中的结果
--mixed(默认选项)对版本库以及暂存区的内容进行回退,不回退工作区
--hard回退所有区域的内容,慎用!可能会把版本消除
HEAD表示的是当前版本(在后面加^表示上一个版本)

在这里插入图片描述

这里如果我们清屏或者是关闭terminal后,找不到log中的记录的提交id,当我们需要恢复的时候,我们可以通过relog来查看,并重写回退(这里如果及时发现可能不会将id冲掉,如果冲掉则无法回滚了)。
在这里插入图片描述



撤销修改

操作工作区暂存区版本库撤销解决方式
docugit checkout --[filename]
adddocudocugit reset
commitdocudocudocu条件:commit 之后没有push操作,git reset --hard HEAD^

工作区的解决方式

git checkout -- doucu

在这里插入图片描述


工作区暂存区存在

git reset HEAD^ docu

在这里插入图片描述


在没有push情况下commit之后

git reset --hard HEAD^

在这里插入图片描述


删除版本库文件

方法1

# 删除工作区的内容
rm docu
# 将工作区变动放到暂存区
git add douc #"要删除的文件名"
# 最后提交变动
git commit -m "珊瑚的文件"

方法2

#使用git rm可以将本地仓库和暂存区的指定文件一起删除 
git rm docu
#可以查看一下通过git status
#删除文件提交
git commit -m "删除文件"


分支管理

HEAD通过指针指向主分支(默认分支master/main.c),目前在工作的分支。
在这里插入图片描述
这里我们可以通过 tree .git/ 来查看树下的分支情况

  • 查看本地分支命令
git brach
# 创建本地分支后面加分支名字
#新分支指向的最近提交的一次内容
git branch branch_name

切换分支

# 切换分支
git check docu

在这里插入图片描述


# 这个是新建一个分支并进行切换
git checkout -b docu

在这里插入图片描述

这里切换后分支默认是最新提交的一次数据,如果修改后,则新分支指向最新修改的一次,父亲节点则是上一次的数据。
在这里插入图片描述


合并分支

将分支合并到主分支中

#通过一下命令将分支合并
git merge branch_name

在这里插入图片描述

  • 查看合并分支可视图情况
git log --graph --abbrev-commit

删除分支

这里的前提不允许在该删除的分支下进行删除此分支操作。

git branch -d branch_name
#删除远程仓库的分支
git push origin --delete branch_name

bug分支

当我们在分支进行开发时,主分支出现bug,这时候我们需要将分支stash到当前分支的树下,然后切换到主分支创建一个修复bug的分支,进而合并

#将当前正在开发的代码藏到该分支下
git stash
#当我们的bug修复好后重写切换到开发的分支下通过以下恢复之前开发的代码
git stash list
git stash pop

在这里插入图片描述

当我们开发完成之后,提交到版本库中时,因为我们已经将主分支master和修复bug分支进行了合并,这时候我们的开发分支与其合并会产生冲突,因为开发分支并没有修复bug分支的代码。
在这里插入图片描述
在这里插入图片描述

这时候我们可以先从本地分支对master的分支先进行合并,在本地仓库进行修改并提交

git merge --no-ff -m "merge information" master

这时候切换到master分支在对本地分支进行合并


强制删除分支

如果删除不打算合并的分支

git branch -D master

远程仓库

克隆远程仓库

通过远程仓库克隆命令克隆到本地仓库中

git clone https://gitee.com/christianward/remote-git-code.git

origin作为我们的远程仓库的默认名字,可以进行查看通过

# 查看远程仓库名
git remote 
# 查看远程仓库的权限
git remote -v

在这里插入图片描述


将本地仓库传入到远程仓库中(push)

在这里插入图片描述

拉取本地仓库的内容(pull)

当我们在开发中,有其他成员上传了新的数据,这时候我们需要从远程仓库中获取到数据,可以使用以下命令。

git pull origin master:master
#如果本地分支和远程分支相同则直接通过
git pull origin master

在这里插入图片描述

编辑不想git追踪的文件

vim. .gitignore
*.so
#这里如果创建.so文件并add时会忽略
git add manager.so
#强制添加忽略文件 -f,即可强制放入暂存区
git add -f manager.so
#也可以将.gitignore中添加不排除文件
!manager.so


这里如果想要查询的文件为什么被忽略可以通过以下命令

git check-ignore- v e.so

标签功能

标签通过每次提交,对提交后的最近版本进行较重要的标识标记。

标记

# 进行标记 tag后面内容为标记的名称
git tag J1.0

查询命令

git tag

删除命令

git tag -d tag_name

对标记进行描述

 git tag -a tag_name -m "Discribe"

查看标签的描述信息以及对应信息

git show tag_name

在这里插入图片描述


推送指定标签至远程仓库

git push origin tag_name

在这里插入图片描述
在这里插入图片描述

推送所有标签至远程仓库

git tag origin --tag

在这里插入图片描述
在这里插入图片描述


本地中删除标签并推送远程仓库

git tag -d tag_name
git  push origin :tag_name

在这里插入图片描述

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

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

相关文章

景联文科技提供高质量文本标注服务,驱动AI技术发展

文本标注是指在原始文本数据上添加标签的过程,这些标签可以用来指示特定的实体、关系、事件等信息,以帮助计算机理解和处理这些数据。 文本标注是自然语言处理(NLP)领域的一个重要环节,它通过为文本的不同部分提供具体…

基于nginx和ffmpeg搭建HTTP FLV流媒体服务器

一、简介 整体是使用nginx搭建HTTP FLV流媒体服务器: 流程:音视频->rtmp->http-flv 音视频转为rtmp需要借助ffmpeg转化。 rtmp转为http-flv需要借助nginx转化。 nginx-http-flv-module是基于nginx-rtmp-module开发的,包含nginx-rt…

01-51单片机硬件基础

开发板介绍 学校授课用的是普中科技的EM3.V2.2开发板,没什么好说的,记着去淘宝上找原理图,别迷信课本。 网上有卖51最小系统板的,比开发板便宜,也有下载模块,可以自己搭建外围电路。 还可以自己在protue…

使用 Database Tools 实现高效数据查询的十大 IntelliJ IDEA 快捷键

得益于 IntelliJ IDEA Ultimate 的 Database Tools(数据库工具)中的专用 SQL 查询控制台,您无需离开 IDE 即可轻松修改连接到您的 Java 应用程序的任何数据库中的数据,以及从这些数据库中提取数据。 查询控制台具有 SQL 语句特定的…

【新人系列】Python 入门(十六):正则表达式

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们…

资料分析题

1、截位除 差距10% 以内 差距小 否则 差距大 2、基期与现期 3、同比与环比

SpringBoot进阶 - 自定义starter

文章目录 思路封装Starter使用starter 思路 创建模块,封装starter,最后使用starter. 1 - 创建一个Demo Project,模拟一个需要被封装的DemoModule模块,其中核心方法为exeModuleMethod 2 - 通过starter封装可以直接初始化DemoModule…

socket编程UDP-实现停等机制(接收确认、超时重传)

在下面博客中,我介绍了利用UDP模拟TCP连接、按数据包发送文件的过程,并附上完整源码。 socket编程UDP-文件传输&模拟TCP建立连接脱离连接(进阶篇)_udp socket发送-CSDN博客 下面博客实现的是滑动窗口机制: sock…

Elasticsearch高性能实践

前言 本方案主要从运维层面分析es是实际生产使用过程中的参数优化,深入理解es各个名词及含义,深入分析es的使用过程中应注意的点,详细解释参数设置的原因以及目的,主要包括系统层面,参数层面。除此之外,优…

Nacos系列:Nacos 控制台手册

引言 Nacos是阿里巴巴中间件部门开源的一款用于服务发现和配置管理的产品,Nacos 控制台主要旨在于增强对于服务列表、健康状态管理、服务治理、分布式配置管理等方面的管控能力,以便进一步帮助用户降低管理微服务应用架构的成本。 一、访问 Nacos 控制台…

FPGA 第十四讲 分频器--偶分频

时间:2024.12.14 时钟对于 FPGA 是非常重要的,但板载晶振提供的时钟信号频率是固定的,不一定满足工程需求,所以使用分频或倍频产生需要的时钟是很有必要的。 一、学习内容 1.分频器 分频器是数字系统设计中最常见的基本电路之一。所谓“分频”,就是把输入信号的频率变成…

Linux:Git

Git常见指令: git help xx_command git xx_command --help git --version 查看git版本git config --global user.name "xxx_name" 全局级别的签名设置,全局的放在本用 git config --global user.ema…

如何使用aws的bedrock训练适合自己的模型

使用 Amazon Bedrock 训练适合自己的模型是一个涉及多个步骤的过程,包括数据准备、模型选择、训练和部署。以下是九河云总结的详细的步骤指南,帮助您在 AWS Bedrock 上训练和部署自定义模型。 ### 1. **准备工作** 在开始训练模型之前,您需…

30.攻防世界unserialize3

进入场景 解读一下 这个类 xctf 中有一个公共属性 $flag &#xff0c;其值为 111 &#xff0c;并且定义了一个 __wakeup 魔术方法&#xff0c;当对象被反序列化时会自动调用该方法&#xff0c;该方法会输出 bad requests 并终止程序的执行。 ?code提示了参数 <?php clas…

PWM调节DCDC参数计算原理

1、动态电压频率调整DVFS SOC芯片的核电压、GPU电压、NPU电压、GPU电压等&#xff0c;都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS&#xff08;Dynamic Voltage and Frequency scaling&#xff09;&#xff0c;优化性能和功耗。 比如某SOC在…

Python爬虫之Selenium的应用

【1】Selenium基础介绍 1.什么是selenium&#xff1f; &#xff08;1&#xff09;Selenium是一个用于Web应用程序测试的工具。 &#xff08;2&#xff09;Selenium 测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。 &#xff08;3&#xff09;支持通过各种driv…

DocFlow票据AI自动化处理工具:出色的文档解析+抽取能力,提升企业文档数字化管理效能

目录 财务应付 金融信贷业务 近期&#xff0c;DocFlow票据自动化产品正式上线。DocFlow是一款票据AI自动化处理工具&#xff0c;支持不同版式单据智能分类扩展&#xff0c;可选功能插件配置流程&#xff0c;满足多样业务场景。 随着全球化与信息化进程&#xff0c;企业的文件…

Python高性能web框架-FastApi教程:(3)路径操作装饰器方法的参数

路径操作装饰器方法的参数 1. 定义带有参数的POST请求路由 app.post(/items,tags[这是items测试接口],summary这是items测试的summary,description这是items测试的description,response_description这是items测试的response_description) def test():return {items: items数据…

Visual Studio Community安装WebForm创建和数据连接

目录 一、安装Visual Studio Community 1.下载Visual Studio Community 2.双击安装 3.配置 二、项目创建 1.创建新项目 2.配置新项目 3.创建web窗体 4.代码分部 5.文件打开问题 三、数据库访问 1.自己先装一个sql server 2.创建实体数据模型 3.创建连接 4.修改更…

【flutter】webview下载文件方法集锦

说明&#xff1a;android的webview是不支持下载的&#xff01;&#xff01;&#xff01; 所以我们需要监听下载接口 然后手动执行下载操作&#xff0c;分为三种类型 直接打开浏览器下载&#xff08;最简单&#xff09;&#xff0c;但是一些下载接口需要cookie信息时不能满足 …