Git基本操作

Git使用

1.命令行操作

1.1 本地库操作

1.1.1 本地库初始化

命令: git init

效果:

在这里插入图片描述

注意:.git目录中存放的是本地库相关的子目录和文件,不能删除和修改。

1.1.2 设置签名

作用:区分不同的开发人员身份

格式:

​ 用户名:pms

​ Email:pms@126.com

注意:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。

命令:

  • 项目级别/仓库级别:仅在当前本地库范围内有效

    git config user.name pms
    git config user.email pms@126.com
    

在这里插入图片描述

  • 系统用户级别:登录当前操作系统的用户范围

    git config --global user.name pmsgit config --global user.email pms@126.com
    
  • 级别优先级:

    • 就近原则:项目级别优先系统用户级别,二者都有时采用项目级别
    • 如果只有系统用户级别的签名,就以系统用户级别的签名为准
    • 二者至少有其中一个

1.1.2 基本操作

1.查看状态

git status

2.添加操作

--添加文件
git add 文件名
--添加所有文件
git add .

将新增、修改文件添加到暂存区。

3.提交操作

git commit -m "message" 文件名

将文件提交到本地代码库。

4.查看历史记录:

git log
commit d209d21c49646cc5bb406bbef583e4a8030f5490
Author: pms <pms@126.com>
Date:   Tue Feb 18 10:37:43 2020 +0800add readme file
--简洁模式
git log --pretty=online
c56f2046c0dbc3b4ae46b62a7bfb4bb83ff0e319 (HEAD -> master) update
d209d21c49646cc5bb406bbef583e4a8030f5490 add readme filegit log --oneline
c56f204 (HEAD -> master) update
d209d21 add readme file--HEAD@{移动到当前版本需要多少步}
git reflog
c56f204 (HEAD -> master) HEAD@{0}: commit: update
d209d21 HEAD@{1}: commit (initial): add readme file

5.版本前进/回退

  • 基于索引值【推荐】

    git reset --hard 索引值
    

在这里插入图片描述

  • 使用^符号:只能后退

    git reset --hard HEAD^
    

    一个后退一步,N个后退N步。

在这里插入图片描述

  • 使用~符号

    git reset --hard HEAD~1
    

    HEAD~n 后退到第n步

6.删除文件后并找回

回退到删除前版本

git reset --hard [指针位置]

7.文件版本比较

git diff 文件名
--将工作区中的文件和暂存区进行比较
git diff 【本地库历史版本】【文件名】
--将工作区中的文件和本地库历史记录比较

1.2 分支管理

1.2.1 分支的优点

  • 同时并行推进多个功能开发,提高开发效率;
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支造成影响,失败分支删除重新开始即可。

1.2.2 分支操作

  1. 创建分支

    git branch [分支名]
    --创建并切换
    git branch -b [分支名]
    
  2. 查看分支

    git branch -v
    
  3. 切换分支

    git checkout [分支名]
    
  4. 合并分支

    • 切换到被合并的分支上

    • 执行merge命令

    --在master中新建分支
    git checkout [新建分支名]
    --在master中合并新建分支
    git merge [新建分支名]
    
  5. 解决冲突

    1. 删除冲突部分特殊符号

    2. git add 冲突文件

    3. git commit -m “日志信息”

      在这里插入图片描述

    1.3 代码提交到远程库

    1.3.1 push 推送本地代码到远程

    git push <远程主机名 可省略> <本地分支名> <远程分支名>

    --将远程库地址取别名存到本地
    git remote add pmsgithub https://github.com/pengmengsheng/pengmengsheng.github.io.git
    --将本地master分支提交到远程origin对应的master分支
    

git push origin master

在这里插入图片描述

1.2.3 clone 克隆远程库代码

git clone https://github.com/pengmengsheng/pengmengsheng.github.io.git

命令的结果:

  • 完整的把远程库下载到本地

  • 创建origin远程地址别名

  • 初始化本地库

1.2.4 邀请加入团队

在这里插入图片描述

1.2.5 pull 拉取代码

pull命令相当于 fetch+merge两个操作命令

  1. git fetch [远程地址别名] [远程分支名]:下载远程文件
  2. git merge [远程地址别名]/[远程分支名]:与本地库进行合并

1.2.6 跨团队提交

  1. 先fork项目,修改 push到远程
  2. pull request

1.3 Git 使用中简易遵循 Git 标准 Flow

1.3.1 Git Flow常用的分支

  • Production 分支

也就是我们经常使用的Master分支,这个分支最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直接修改

  • Develop 分支

这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支

  • Feature 分支

这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release

  • Release分支

当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支

  • Hotfix分支

当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release

在这里插入图片描述

1.3.2 Git Flow如何工作

初始分支

所有在Master分支上的Commit应该Tag

在这里插入图片描述

Feature 分支

分支名 feature/*

Feature分支做完后,必须合并回Develop分支, 合并完分支后一般会删点这个Feature分支,但是我们也可以保留

在这里插入图片描述

Release分支

分支名 release/*

Release分支基于Develop分支创建,打完Release分之后,我们可以在这个Release分支上测试,修改Bug等。同时,其它开发人员可以基于开发新的Feature (记住:一旦打了Release分支之后不要从Develop分支上合并新的改动到Release分支)

发布Release分支时,合并Release到Master和Develop, 同时在Master分支上打个Tag记住Release版本号,然后可以删除Release分支了。

在这里插入图片描述

热修复分支 Hotfix

分支名 hotfix/*

hotfix分支基于Master分支创建,开发完后需要合并回Master和Develop分支,同时在Master上打一个tag

在这里插入图片描述

1.3.3 Git Flow GUI

https://github.com/nvie/gitflow

1.4 忽略特殊文件

在~/.gitconfig 文件中加入

excludesfile=文件路径,文件路径使用“/”

1.5 安装 GitLab

2.日常使用问题

2.1 git clone 遇到问题:fatal: unable to access ‘https://github.comxxxxxxxxxxx’: Failed to connect to xxxxxxxxxxxxx

处理方法:将命令行里的http改为git重新执行。

2.2 每次提交都需要输入登录账户

解决方法参考:https://blog.csdn.net/Len_lele/article/details/112645080

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

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

相关文章

思科路由器交换机密码破解教程

1. 路由器密码的恢复. 2600、3600等新系列路由器步骤&#xff1a; 1、启动路由器&#xff0c;60秒内按下ctrlbreak键2、rommon>confreg 0x21423、rommon>reset4、router#copy startup-config running-config5、router(config)#no enable secrect //可以删除密码也可以更…

1 js嵌入html使用

1.1 直接在html内部使用js代码 使用script标签&#xff0c;在前后标签内部写的代码即为js代码。 <body><p id"p1">初始段落</p> <!--id是为了定位需要更改内容的标签--><button type"button" onclick"showNum()">…

Tesseract开源的OCR工具及python pytesseract安装使用

一 、介绍 Tesseract是一款由Google赞助的开源OCR。 pytesseract是python包装器&#xff0c;它为可执行文件提供了pythonic API。 Tesseract 已经有 30 年历史&#xff0c;开始它是惠普实验室的一款专利软件&#xff0c;在2005年后由Google接手并进一步开发和完善。Tesseract支…

YOLOv7 论文学习

1. 解决了什么问题&#xff1f; 实时的目标检测器是计算机视觉系统的重要组成部分。目前应用在 CPU 端的实时目标检测方法大多基于 MobileNet、ShuffleNet、GhostNet&#xff0c;而用在 GPU 的实时目标检测方法大多基于 ResNet、DarkNet、DLA&#xff0c;然后使用 CSPNet 策略…

MLP-Mixer:面向视觉的全mlp架构

文章目录 MLP-Mixer: An all-MLP Architecture for Vision摘要本文方法代码实验结果 MLP-Mixer: An all-MLP Architecture for Vision 摘要 卷积神经网络(cnn)是计算机视觉的首选模型。 最近&#xff0c;基于注意力的网络&#xff0c;如VIT&#xff0c;也变得流行起来。在本文…

消息中间件ActiveMQ介绍

一、消息中间件的介绍 介绍 ​ 消息队列 是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数据交流&#xff0c;并基于 数据通信 来进行分布式系统的集成。 特点(作用) 应用解耦 异步通信 流量削峰 (海量)日志处理 消息通讯 …... 应用场景 根据消息队列的特点&a…

【蓝图】p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统

p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统 p40对象引用、变量有效性p41实现键盘控制物体自转创建bool值控制旋转实现通过键盘控制自转 p42p43简单点名系统Get All Actors Of Class&#xff08;获得场景中所有该类的actor演员&#xff09;getFor Each L…

蓝桥杯专题-真题版含答案-【贪吃蛇长度】【油漆面积】【绘制圆】【高次方数的尾数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

(一)RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理

Lison <dreamlison163.com>, v1.0.0, 2023.06.22 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理 文章目录 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理RabbitMQ概念RabbitMQ的优势RabbitMQ劣势RabbitMQ应用的场景RabbitMQ_AMQPRabbitMQ工作原理 RabbitM…

Flutter、Android Studio 安装详细步骤以及常错解决

目录 一、前言 二、介绍 三、安装 (一&#xff09;、安装Flutter SDK 1&#xff09;双击文件夹&#xff0c;打开之后就是这样&#xff1a;​编辑 2&#xff09;双击此文件&#xff1a;​编辑 3&#xff09;此过程问题&#xff1a; (二&#xff09;、配置 Flutter SDK 环…

国内疫情地图和省级疫情地图

基础地图演示 from pyecharts.charts import Mapfrom pyecharts.options import VisualMapOpts map Map() data [ ("北京", 99), ("上海", 199), ("湖南", 299), ("台湾", 199), ("安徽", 299), ("广州", 399…

Rust vs Go:常用语法对比(十三)

题图来自 Go vs. Rust: The Ultimate Performance Battle 241. Yield priority to other threads Explicitly decrease the priority of the current process, so that other execution threads have a better chance to execute now. Then resume normal execution and call f…

7.27 作业 QT

要求&#xff1a; 结果图&#xff1a; clock.pro: QT core gui QT texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated …

Bootstrap框架(组件)

目录 前言一&#xff0c;组件1.1&#xff0c;字体图标1.2&#xff0c;下拉菜单组件1.2.1&#xff0c;基本下拉菜单1.2.2&#xff0c;按钮式下拉菜单 1.3&#xff0c;导航组件1.3.1&#xff0c;选项卡导航1.3.2&#xff0c;胶囊式导航1.3.3&#xff0c;自适应导航1.3.4&#xff…

React 组件使用

React 组件是一个 js 函数&#xff0c;函数可以添加 jsx 标记 当前页使用组件&#xff0c;基本使用 注意&#xff1a;组件的名称&#xff0c;第一个字母一定要大写&#xff0c;否则会报错 import { createRoot } from "react-dom/client"; import "./index.c…

(三)springboot实战——web新特性之函数式实现

前言 本节内容我们主要介绍一下web访问的另一种形式&#xff0c;通过函数式web实现一个restful风格的http请求案例。函数式web是spring5.2之后的一个新特性&#xff0c;可以通过函数去定义web请求的处理流程&#xff0c;使得代码更为简洁&#xff0c;耦合性也降低了。 正文 …

[Linux] 初识应用层协议: 序列化与反序列化、编码与解码、jsoncpp简单使用...

写在应用层之前 有关Linux网络, 之前的文章已经简单演示介绍了UDP、TCP套接字编程 相关文章: [Linux] 网络编程 - 初见UDP套接字编程: 网络编程部分相关概念、TCP、UDP协议基本特点、网络字节序、socket接口使用、简单的UDP网络及聊天室实现… [Linux] 网络编程 - 初见TCP套接…

国产化 | 走近人大金仓-KingbaseES数据库

引入 事务隔离级别 || KingbaseES数据库 开篇 1、KingbaseES数据库 百度百科&#xff1a;金仓数据库的最新版本为KingbaseES V8&#xff0c; KingbaseES V8在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进&#xff0c;支持多种操作系统和硬件平台支持Unix、Linux…

Ubuntu--科研工具系列

翻译系列 pot-desktop github链接: https://github.com/pot-app/pot-desktop 下载deb Releases pot-app/pot-desktop GitHub 安装过程 在下载好的deb目录下打开终端(自动安装依赖) sudo apt install "XXX.deb" &#xff08;后面可以直接托文件到终端&#…

d3dx9_42.dll丢失怎么解决?这三个方法亲测可修复

最近我在使用计算机时遇到了一个问题&#xff0c;就是d3dx9_42.dll文件丢失的错误提示。初时我对这个错误一无所知&#xff0c;不知道该如何解决。但是经过一番搜索和学习&#xff0c;我终于找到了修复这个问题的方法。d3dx9_42.dll是一个与DirectX相关的动态链接库文件&#x…