Git分布式版本控制工具

news2024/11/19 19:40:16

layout: post
title: Git分布式版本控制工具
description: Git分布式版本控制工具
tag: 开发工具


文章目录

  • git 基本配置与指令
    • 设置用户信息
    • 为常用指令设置别名
    • 解决gitbash乱码问题
    • 基础操作指令:初始化、添加到暂存区、提交到仓库、查看状态、日志
    • 版本回退git reset
    • 配置.gitignore
  • 分支
    • 分支创建、删除、合并、查看
    • 合并遇到冲突
  • 远程仓库
    • ssh公钥配置
    • git推送本地项目到远程的空仓库
    • 本地远程仓库操作
      • 推送到远程仓库

git 基本配置与指令

设置用户信息

设置用户信息:
git config --global user.name "lewis"
git config --global user.email "lewissince2022@163.com"
查看用户信息:
git config --global user.name
git config --global user.email

为常用指令设置别名

有些常用指令可能参数很多,可以使用别名来简化命令。指令设置别名的具体方法如下:

  1. 打开用户目录,创建.bashrc文件,部分Windows系统不允许用户创建点开头的文件,可以打开gitbash,执行touch ~/.bashrc
  2. 在.bashrc文件中输入如下内容:
    语法格式:alias 简化指令=实际指令
# 用于git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 用于输出当前目录所有文件及基本信息
alias ll='ls -al'
  1. 打开gitbash,执行source ~/.bashrc,使得文件生效。

解决gitbash乱码问题

  1. 打开gitbash执行下面命令
    git config --global core.quotepath fasle
  2. ${git_home}/etc/bash.bashrc (git_home即为git的安装目录)文件最后加入如下两行:
export LAN="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

基础操作指令:初始化、添加到暂存区、提交到仓库、查看状态、日志

在当前目录下初始化仓库:git init

git中非常主要的两个指令git addgit commit
在这里插入图片描述
add将新建文件(未追踪)或修改过的文件(未暂存)提交到暂存区,commit则将暂存区的修改加入到仓库,称为一次提交。

例子:

  1. 创建file01.txt:touch file01.txt
  2. 查看git状态(当前工作区文件的状态):git status
  3. 添加到暂存区(指定文件或者使用通配符’“.”添加所有):git add file01.txt或者git add .
  4. 再次查看状态:git status
  5. 提交到本地仓库,并添加注释为“add file01”:git commit -m "add file01"
  6. 再次查看状态:git status
  7. 查看git日志:git log

git log [option]

  • –all 显示所有分支
  • –pretty=oneline 将提交信息显示为一行
  • –abbrev-commit 使得输出的commit更简短
  • –graph 以图的形式显示

版本回退git reset

撤销某次不想要的提交:git reset --hard commitID
commitID使用git log查看
撤销提交后在git log中将不再显示

如果想要查看已经删除的记录
git reflog该指令记录了所有的操作
通过git reset --hard commitID可以再找回撤销前的版本

配置.gitignore

某些不想纳入Git管理的文件,可以在gitignore文件中列出需要忽略的文件模式
创建.gitignore文件: tourch .gitignore
编辑.gitignore:

# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir /TODO
/TODO
# ignore all files in the build/ directory
build/
doc/*.txt
# ignore all pdf files in the doc/directory
doc/**/*.pdf

分支

分支创建、删除、合并、查看

  1. 查看分支:git branch
  2. 创建本地名为“dev01”分支:git branch dev01
  3. 再次查看分支:git branch
  4. 切换到分支dev01:git checkout dev01
  5. 创建分支dev02并切换到该分支:git checkout -b dev02
  6. 在dev02分支创建文件:tourch file02.txt
  7. 切换回master分支,合并dev02
    git checkout master
    git merge dev02
  8. 删除分支dev02:git branch -d dev02
    删除分支还有一个指令使用大写的D。
    大写的D是不检查,强制删除,小写的d删除时会检查分支是否还有未merge的提交。

合并遇到冲突

假定两个分支对于同一行代码进行了修改,git 在merge时将无法自动合并,需要人为手动调。
在这里插入图片描述

在这里插入图片描述

远程仓库

ssh公钥配置

生成SSH公钥:

  • ssh-keygen -t rsa
  • 不断回车

在Gitee设置账户公钥

  • 获取公钥 cat ~/.ssh/id_rsa.pub

在这里插入图片描述

  • 验证是否配置成功ssh -T git@gitee.com

git推送本地项目到远程的空仓库

1- 在远程比如gitee建立空仓库,复制仓库地址,例如:https://gitee.com/lewissince2020/my-leet-code.git

2- 在本地项目的根目录右键git bash here,进入git命令行,

初始化:建立本地空仓库,自动生成.git文件夹,指令:

git init

3- 绑定远程项目orgin

git remote add origin https://gitee.com/lewissince2020/my-leet-code.git

4- 拉远程项目和本地合并

git pull origin master --allow-unrelated-histories

5- 添加待提交内容,‘.’的含义是所有文件

git add .

6- 提交到本地仓库,‘-m’的含义是本次推送的message说明

git commit -m 'init'

7- 推送到远程仓库

git push origin master

本地远程仓库操作

推送到远程仓库

  • 推送命令:git push [-f] [--set-upstream] [远端名称][本地分支名][:远端分支名]
    • 如果远程分支名和本地分支名相同,则可以只写本地分支
      git push origin master
    • –set-upstream 推送到远端的同时并且建立和远端分支的关联关系
      git push --set-upstream origin master
    • 如果当前分支已经和远端分支关联,则可以省略分支名和远端名
      git push 将master分支推送到已经关联的远端分支
    • -f 是用本地分支强制覆盖远端分支的意思(假如远端和本地改变了同一程序的同一行发生冲突)
  • 查看本地分支与远端对应关系
    git branch -vv

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智工教育:一级建造师《公路实务》考前必背知识点

一、路基工程 1.地基表层碾压处理压实度控制标准为:二级及二级以上公路一般土质应不小于90%;三、四级公路应不小于85%。 2.石质路堑施工技术 (1)应逐级开挖,逐级按设计要求进行防护。 (2)施工…

高效工具-局域网服务器访问公网

文章目录任务需求方法1:使用CCproxy代理简单介绍下载安装配置逻辑本机配置客户机配置成功测试方法2:修改MAC地址查询本机MAC地址修改内网服务器MAC地址打开rc-local.service服务添加Install段创建rc.local文件添加核心的修改MAC地址代码创建链接启动服务成功测试参考…

线上超市小程序开发有什么作用_超市小程序有什么功能呢

1。开发超市小程序有什么价值? 1、对于消费者来说:通过超市小程序能够更加直接的购买到想要的产品,消费者无需再到门店寻找商品可以直接通过超市小程序进行在线浏览;通过在线搜索的方式能够更加便捷的搜索到相应的商品&#xff0…

mysql连接池的实现

文章目录前言一、池化技术二、什么是数据库连接池三、为什么使用数据库连接池不使用连接池使用连接池长连接和连接池的区别四、数据库连接池运行机制五、连接池和线程池的关系六、连接池设计要点连接池设计逻辑构造函数初始化请求获取连接归还连接析构连接池前言 本文是mysql连…

模数转换电路

一、Exynos4412 A/D转换器概述 1. 概述 ADC(Analog-to-Digital Converter),就是模数转换器。从字面上看,A我们称为模拟信号(Analog signal),D我们称为数字信号(digital signal)。 模数转换器,在电子技术中即是将模拟信号转换成数字…

[附源码]java毕业设计家乡旅游文化推广系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

教你STM32做USB鼠标、键盘

使用CubeMX软件傻瓜式的配置,一键生成USB的HID驱动。 一、USB鼠标 1、CubeMX配置 ①、选择相对应的芯片 ②、配置时钟和Debug和debug ③、配置USB ④、生成代码 最好把这个也勾上,勾上以后每个外设配置不再都给你塞到main.c里,而是建一个.c…

简单的爬虫架构和网页下载器requests

目录 简单的爬虫架构: 网页下载器: URL管理器: 网页解析器: 网页下载器requests: 发送requests请求: 接收requests请求: requests操作实例: 简单的爬虫架构: 网页下载器: 负责通过URL将网页进行下载…

聊聊Vuex原理

背景 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。Vuex 是专门为 Vue.js 设计的状态管理库,以利用 Vue.js 的细粒度数据响应机制来进行高效的状态更新。如果你已经灵活运用,但是依然好奇它底层实现逻辑,不妨一探究竟。 Vue 组件开发…

docker系统笔记-03镜像的创建管理和发布

镜像的获取 pull from registry (online) 从registry拉取 public(公有)private(私有) build from Dockerfile (online) 从Dockerfile构建load from file (offline) 文件导入 (离线) 镜像的基本操作 dock…

概率 | 【提神醒脑】自用笔记串联二 —— 数字特征、大数定律、统计量

本文总结参考于 kira 2023概率提神醒脑技巧班。 笔记均为自用整理。加油!ヾ(◍∇◍)ノ゙ 第一部分笔记详见 概率 | 【提神醒脑】自用笔记串联一 —— 事件、随机变量及其分布_西皮呦的博客-CSDN博客 一研为定! 四、随机变量的数字特…

cocos2dx 3D物理相关知识点汇总

(一)3D相关基础知识 网格(Mesh) 通常说的网格其实就是3D建模出来的形状。因为模型是由很多三角形组成,所以,就像网格一样。 纹理 纹理的作用就是给网格上色。 怎么上色的? 举个简单的例子。…

m基于GA遗传优化的生产工艺设备布置优化matlab仿真

目录 1.算法概述 2.仿真效果预览 3.核心MATLAB程序 4.完整MATLAB程序 1.算法概述 在设备布置的问题上,本文将作业车间设备布置这个多目标优化问题看成是包含布局面积,物流成本和生产工艺的连续优化的多行设备布置问题,使之更具有实际意义…

如何在 Rocky Linux 上安装 Apache Kafka?

Apache Kafka 是一种分布式数据存储,用于实时处理流数据,它由 Apache Software Foundation 开发,使用 Java 和 Scala 编写,Apache Kafka 用于构建实时流式数据管道和适应数据流的应用程序,特别适用于企业级应用程序和关…

robots.txt漏洞

robots.txt漏洞描述: 搜索引擎可以通过robots文件可以获知哪些页面可以爬取,哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯,如果robots.txt文件编辑的太过详细,反而会泄露网站的敏感…

[附源码]java毕业设计基于学生信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Delphi中关于PChar、Char数组、string[](ShortString)及结构体长度及占用空间的一些特性说明和测试

关于特性 1,string和Char数组都是一块内存, 其中存放连续的字符. string保存具体字符的内存对用户 是透明的, 由Delphi管理它的分配, 复制和释放, 用户不能干预2,关于ShortString,内存中用第一个字节来表示字符串的长度。FF255,所以这个特性…

【MySQL】MySQL复制与高可用水平扩展架构实战(MySQL专栏启动)

📫作者简介:小明java问道之路,专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

天王刘德华走红毯,到哪他都是最耀眼的明星

第三十五届金鸡奖,已经在福建厦门落下帷幕,如果要说本届金鸡奖谁收获最大,无疑是天王刘德华。在金鸡奖颁奖典礼现场,功夫巨星吴京登上热搜,然而热搜的主角却不是他,而是天王刘德华。 在本届金鸡奖颁奖典礼现…

cubeIDE开发, stm32调试信息串口通信输出显示

关于cubeIDE开发基本技巧及流程,本文不详细叙述,请参考:cubeIDE快速开发流程_py_free的博客-CSDN博客_cubeide汉化 一、stm32串口配置 本文采用的开发板是stm32L496VGT3,其有两个 USB 接口,一个为 USB ST-link 复用接口&#xff…