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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高中数学:随机变量-二项分布与超几何分布(独立重复实验)

文章目录 一、二项分布伯努利实验概率公式均值与方差公式归纳例题 二、超几何分布定义均值例题 一、二项分布 伯努利实验 概率公式 补充:二项式定理 均值与方差公式 归纳 例题 二、超几何分布 定义 均值 证明 例题

【Leetcode】滑动窗口算法-编程苍穹下划破数据暗夜的高效光弧

前言 🌟🌟本期讲解关于滑动窗口问题~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不多说直接…

go-zero(十二)消息队列

go zero 消息队列 在微服务架构中,消息队列主要通过异步通信实现服务间的解耦,使得各个服务可以独立发展和扩展。 go-zero中使用的队列组件go-queue,是gozero官方实现的基于Kafka和Beanstalkd 的消息队列框架,我们使用kafka作为演示。 一、…

Django基础之模板

一.前言 前面我们讲了视图,我们今天来讲一下模板,模板其实也就是视图中render返回的html进行的渲染,然后展示到浏览器页面上去,那我们今天就来和大家来说一下模板的基本用法 二.寻找html模板 这个也就是我们前面说了的找html&a…

基于回溯法解决八皇后问题+以位运算方法优化n皇后问题(算法与数据结构期末设计)

文章目录 基于回溯法解决八皇后问题以位运算方法优化n皇后问题1. 八皇后问题问题描述2.回溯法求八皇后(n皇后)问题①由四皇后问题引入②皇后的占位问题③皇后的放置过程④放置过程中的问题⑤回溯算法核心⑥回溯算法的求解过程⑦验证算法和代码实现LeetCo…

Linux - MySQL迁移至一主一从

Linux - MySQL迁移至一主一从 迁移准备安装MySQL ibd文件迁移原服务器操作目标服务器操作 一主一从增量同步异常解决结尾 首先部分单独安装MySQL,请参考Linux - MySQL安装,迁移数据量比较大约400G左右且网络不通故使用文件迁移,需开启一段时间…

PaddleOCR模型ch_PP-OCRv3文本检测模型研究(一)骨干网络

从源码上看,PaddleOCR一共支持四个版本,分别是PP-OCR、PP-OCRv2、PP-OCRv3、PP-OCRv4。本文选择PaddleOCR的v3版本的骨干网络作为研究对象,力图探究网络模型的内部结构。 文章目录 研究起点卷归层压发层残差层骨干网代码实验小结 研究起点 参…

数据结构——栈的模拟实现

大家好,今天我要介绍一下数据结构中的一个经典结构——栈。 一:栈的介绍 与顺序表和单链表不同的是: 顺序表和单链表都可以在头部和尾部插入和删除数据,但是栈的结构就锁死了(栈的底部是堵死的)栈只能从…

Ubuntu 安装 Samba Server

在 Mac 上如何能够与Ubuntu 服务器共享文件夹,需要在 Ubuntu 上安装 Samba 文件服务器。本文将介绍如何在 Ubuntu 上安装 Samba 服务器从而达到以下目的: Mac 与 Ubuntu 共享文件通过用户名密码访问 安装 Samba 服务 sudo apt install samba修改配置文…

Alan Chhabra:MongoDB AI应用程序计划(MAAP) 为客户提供价值

MongoDB全球合作伙伴执行副总裁 Alan Chhabra 每当有人向我问询MongoDB,我都会说他们很可能在不觉之间已经与MongoDB有过交集。事实上,包括70%财富百强在内的许多世界领先企业公司都在使用MongoDB。我们在MongoDB所做的一切都是为了服务客户&#xff0c…

计算机组成原理与系统结构——微程序控制

笔记内容及图片整理自XJTUSE “计算机组成原理与系统结构” 课程ppt,仅供学习交流使用,谢谢。 基本概念 微指令 将控制单元实现为基本逻辑单元之间的互连并非易事,且设计相对呆板,难以灵活地改变,因此实现微程序控制…

CUDA算子手撕与面试指南

引言 最近秋招落幕,期间一直在找高性能计算(HPC)相关岗位,整理了一些CUDA算子手撕的代码和知识点分享给大家。 项目地址:https://github.com/Tongkaio/CUDA_Kernel_Samples 如果觉得本项目对你有帮助,欢…

IIS部署程序https是访问出现403或ERR_HTTP2_PROTOCOL_ERROR

一、说明 在windows server 2016中的IIS程序池里部署一套系统,通过https访问站点,同时考虑到安全问题以及防攻击等行为,就用上了WAF云盾功能,能有效的抵挡部分攻击,加强网站的安全性和健壮性。 应用系统一直能够正常…

【EthIf-05】 Ethernet Interface main function

Ethernet Interface main function函数有以下功能和要点: 要实现支持轮询模式下帧传输确认和帧接收的以太网接口轮询机制:实现轮询功能,定期检查传入的帧。帧传输确认:包括确认帧已成功传输的机制。可配置轮询周期:允…

康耐视智能相机(Insight)通过ModbusTCP发送字符串到倍福(BECKHOFF)PLC中

文章目录 1.背景2.分析3.实现3.1.PLC的ModbusTCP_Server3.1.1.安装TF6250-Modbus-TCP3.1.2.PLC设置 3.2.智能相机的ModbusTCP_Client3.2.1.了解ModbusTCP的协议3.2.2.根据协议写代码3.2.2.1.纯函数代码3.2.2.2.脚本代码 3.2.3.非脚本处理时的代码逻辑图3.2.4.关于代码的问题及解…

ruoyi Cannot find module ‘@/views/system/user/index‘

Cannot find module /views/system/user/index 删除node_module 后打包成功

如何将你的 Ruby 应用程序从 OpenSearch 迁移到 Elasticsearch

作者:来自 Elastic Fernando Briano 将 Ruby 代码库从 OpenSearch 客户端迁移到 Elasticsearch 客户端的指南。 OpenSearch Ruby 客户端是从 7.x 版 Elasticsearch Ruby 客户端分叉而来的,因此代码库相对相似。这意味着当将 Ruby 代码库从 OpenSearch 迁…

spring cloud contract http实例

微服务很多时,服务之前相互调用,接口参数的一致性要变得很难维护。 spring cloud contract 提供了测试接口一致性的方法。 一 项目配置 plugins {id "groovy"id "org.springframework.cloud.contract" version "4.0.5"i…

帆软的无数据展示方案

文章目录 需求描述第一步、设置控件第二步、设置数据集优化改进 在日常工作中,使用到帆软报表工具,以下记录日常使用的过程, 需求描述 用帆软报表展示销量的信息,选择不同的订单状态,展示其订单数和总金额。 第一步、…

【操作系统】实验九:设备驱动程序

实验9 设备驱动程序 在钻研Linux内核的人当中,大多数人都是在写设备驱动程序。尽管由于设备的特殊性,使得每个驱动程序都不一样。但是编写设备驱动程序的许多原则和基本技巧都是一样的,甚至Windows下的设备驱动程序从原理上讲也与之相通。在…