Git小技巧——git的bare裸库命令操作——一看就会

2023-12-12 21:30

本文主要是介绍Git小技巧——git的bare裸库命令操作——一看就会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

          • 1、区别
          • 2、创建裸库
          • 3、创建并使用普通库
          • 4、查看裸库
          • 5、裸库中拉取数据
          • 6、裸库push到远程仓库

学习git的裸库的时候,在网上找了一些教程,都是只说了裸库和正常库的区别,没有给出如何用命令进行实际操作。有的给出了命令,但是也是到处粘贴的,具有跳跃性,不能一步一步的给出操作步骤。

本文就结合git命令如何创建和使用bare裸库给出实际的例子:
规划:

test-bare.git:是裸库的目录。具体地址E:\JDAZ\ins-ssp-group,注意git命令的时候使用 /e/JDAZ/ins-ssp-group/test-bare.git
test:是第一个git的正常库。主要是做基本常规操作。E:\JDAZ\ins-ssp-group\test
test-bare:是第二个git的正常库。主要是展示从裸库pull数据。即裸库就相当于一个分享库或一个类似中央库的存在,其他人都可以拉取代码。E:\JDAZ\ins-ssp-group\test-bare。这个文件不需要手动创建。
1、区别

正常库/普通库:使用git init创建即可。包含了工作区,可以正常的进行源文件的编写,提交等各种git常规操作。
裸库:使用git init --bare创建。创建之后里面有很多文件,并非网上说了只有一个.git目录。它主要是只保存历史提交的版本信息,不保存文件。作用就是作为分享库。

2、创建裸库

首先可以手动创建裸库的文件夹,命名为test-bare.git。其中git结尾只是一个标识,代表为库。

cd /e/JDAZ/ins-ssp-group/test-bare.git
git init --bare

在这里插入图片描述
在这里插入图片描述
可以看到裸库中有很多文件

3、创建并使用普通库

手动创建文件夹test

# 进入test目录中
$ cd /e/JDAZ/ins-ssp-group/test
# init初始化为正常库
qsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group/test
$ git init
Initialized empty Git repository in E:/JDAZ/ins-ssp-group/test/.git/
# 编写一个text文件
qsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group/test (master)
$ echo 'ss' > test.txt
# 查看text文件
qsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group/test (master)
$ cat test.txt
ss
# add操作
$ git add *
warning: LF will be replaced by CRLF in test.txt.
The file will have its original line endings in your working directory.
# commit操作
qsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group/test (master)
$ git commit -m 'init'
[master (root-commit) 1275e75] init1 file changed, 1 insertion(+)create mode 100644 test.txt
# 添加远程仓库,也就是我们的裸库,地址为/e/JDAZ/ins-ssp-group/test-bare.git
qsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group/test (master)
$ git remote add origin /e/JDAZ/ins-ssp-group/test-bare.git
# push到裸库中
$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 203 bytes | 203.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To E:/JDAZ/ins-ssp-group/test-bare.git* [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

至此,普通库test,可以提交文件并且上传push到裸库中。
在这里插入图片描述

4、查看裸库

现在去查看裸库中的信息,看是不是有记录push上来了。

$ cd /e/JDAZ/ins-ssp-group/test-bare.gitqsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group/test-bare.git (BARE:master)
$ git log
commit 905ebbae2949fb111c714c0378390b9a6067eb84 (HEAD -> master)
Author: qsm<qsm@xx.com>
Date:   Tue Jul 21 10:38:53 2020 +0800init

我们可以看到裸库中确实有信息存在

5、裸库中拉取数据

我们可以看到裸库中确实有提交的记录,那么我们看能否拉取数据
在这里插入图片描述
直接在ins-ssp-group目录下操作

qsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group
$ cd /e/JDAZ/ins-ssp-groupqsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group
$ git clone /e/JDAZ/ins-ssp-group/test-bare.git
Cloning into 'test-bare'...
done.

可以看到确实生成了test-bare库,里面也存在了text文件。
在这里插入图片描述
在这里插入图片描述

6、裸库push到远程仓库

将裸库中的信息保存到gitlab的远程仓库
首先在git得建立一个项目
在这里插入图片描述
地址为:http://git.xxx.com/ins-ssp-group/baretest

然后在本地的裸库中操作

$ cd /e/JDAZ/ins-ssp-group/test-bare.git
qsm@ZB-PF1EJ7LN MINGW64 /e/JDAZ/ins-ssp-group/test-bare.git (BARE:master)
$ git push --mirror http://git.xxx.com/ins-ssp-group/baretest
warning: redirecting to http://git.xxx.com/ins-ssp-group/baretest.git/
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 199 bytes | 199.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://git.xxx.com/ins-ssp-group/baretest* [new branch]      master -> master

查看远程仓库
在这里插入图片描述

至此git的裸库bare操作到此结束。若是安装步骤一步一步来,应该明白了裸库的含义和用法了。
更多git笔记可以查看Git学习笔记-简单版
【暂完】





正在去BAT的路上修行

这篇关于Git小技巧——git的bare裸库命令操作——一看就会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485997

相关文章

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

使用Python在PDF中绘制多种图形的操作示例

《使用Python在PDF中绘制多种图形的操作示例》在进行PDF自动化处理时,人们往往首先想到的是文本生成、图片嵌入或表格绘制等常规需求,然而在许多实际业务场景中,能够在PDF中灵活绘制图形同样至关重... 目录1. 环境准备2. 创建 PDF 文档与页面3. 在 PDF 中绘制不同类型的图形python

Java 操作 MinIO详细步骤

《Java操作MinIO详细步骤》本文详细介绍了如何使用Java操作MinIO,涵盖了从环境准备、核心API详解到实战场景的全过程,文章从基础的桶和对象操作开始,到大文件分片上传、预签名URL生成... 目录Java 操作 MinIO 全指南:从 API 详解到实战场景引言:为什么选择 MinIO?一、环境

在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)

《在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)》DataGrip是JetBrains公司出品的一款现代化数据库管理工具,支持多种数据库系统,包括MySQL,:本文主要介绍在D... 目录前言一、登录 mysql 服务器1.1 打开 DataGrip 并添加数据源1.2 配置 MySQL

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

Python操作Excel的实用工具与库openpyxl/pandas的详细指南

《Python操作Excel的实用工具与库openpyxl/pandas的详细指南》在日常数据处理工作中,Excel是最常见的数据文件格式之一,本文将带你了解openpyxl和pandas的核心用法,... 目录一、openpyxl:原生 Excel 文件操作库1. 安装 openpyxl2. 创建 Exc

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士