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 pms
    
    git 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 +0800

    add readme file
--简洁模式
git log --pretty=online
c56f2046c0dbc3b4ae46b62a7bfb4bb83ff0e319 (HEAD -> master) update
d209d21c49646cc5bb406bbef583e4a8030f5490 add readme file

git 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.mfbz.cn/a/48191.html

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

相关文章

Kubernetes 简介:容器编排与集群管理的进化

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

NetApp FAS2750 和 FAS2820:适用于分布式企业和从远程到核心的 FAS

NetApp FAS2750 和 FAS2820&#xff1a;适用于分布式企业和从远程到核心的 FAS 拥有分布式企业和多个办公位置的客户希望使用这些系统进行虚拟化&#xff0c;以及为大型 FAS 和 AFF 系统提供简单且经济高效的备份和灾难恢复。 为什么要从 NetApp FAS 系列中选择一个型号&…

jmeter-断言

断言作用&#xff1a;让脚本自动化执行过程中&#xff0c;能够自动判定执行结果是否正确&#xff0c;需要添加断言 响应断言 添加方式&#xff1a;测试计划–》线程组–》HTTP请求–》(右键添加)断言–》响应断言 案例 请求:https://www.baidu.com 检查&#xff1a;让程序检查…

英文审稿意见回复

编辑&#xff1a;Cover Letter 审稿人&#xff1a;Response Letter 审稿意见回复 - 搜索结果 - 知乎知乎&#xff0c;中文互联网高质量的问答社区和创作者聚集的原创内容平台&#xff0c;于 2011 年 1 月正式上线&#xff0c;以「让人们更好的分享知识、经验和见解&#xff0c…

WPF icon的设置

想给控件设置个圆形图片&#xff0c;代码如下&#xff1a; ​<Setter Property"Icon"><Setter.Value><Image Source"/WpfApp1;component/Resource/1.ico" Width"16" Height"16"/></Setter.Value></Setter&…

意外:WPS编程新工具,不用编程,excel用户:可以不用VBA啦

来来来&#xff0c;拓宽一下视野&#xff01; 别总以为excel和WPS只能用VBA编程&#xff0c;也别总是想着ACCESS这些老生常谈的工具。其实对于电子表格高级用户来讲&#xff0c;不会VBA&#xff0c;不用ACCESS&#xff0c;也一样可以解决复杂问题或者高级应用。 尤其是WPS用户…

数据结构和算法——排序算法的比较和排序综测测验

目录 排序算法的比较 排序综合测验 快又稳定 元素错位 有序排序 排序结果 排序算法的比较 排序方法平均时间复杂度最坏情况下时间复杂度额外空间复杂度稳定性简单选择排序不稳定冒泡排序稳定直接插入排序稳定希尔排序不稳定堆排序不稳定快速排序不稳定归并排序稳定基数排…

Springboot之把外部依赖包纳入Spring容器管理的两种方式

前言 在Spring boot项目中&#xff0c;凡是标记有Component、Controller、Service、Configuration、Bean等注解的类&#xff0c;Spring boot都会在容器启动的时候&#xff0c;自动创建bean并纳入到Spring容器中进行管理&#xff0c;这样就可以使用Autowired等注解&#xff0c;…

关注这些问题,助你找到理想工作

导语&#xff1a;在寻找理想工作的过程中&#xff0c;有一些关键问题需要我们特别关注。了解并回答这些问题将有助于我们更好地定位自己&#xff0c;并找到符合自身需求和目标的职位。本文将介绍一些在找工作时需要关注的重要问题。 个人定位&#xff1a;首先&#xff0c;我们…

Vue源码学习 - 异步更新队列 和 nextTick原理

目录 前言一、Vue异步更新队列二、nextTick 用法三、原理分析四、nextTick 源码解析1&#xff09;环境判断2&#xff09;nextTick() 五、补充 前言 在我们使用Vue的过程中&#xff0c;基本大部分的 watcher 更新都需要经过 异步更新 的处理。而 nextTick 则是异步更新的核心。…

视频剪辑矩阵分发系统Unable to load FFProbe报错技术处理?

问题一 报错处理 对于视频剪辑矩阵分发系统中出现的“Unable to load FFProbe”报错问题&#xff0c;可以采取以下技术处理措施进行解决。 1.检查系统中是否正确安装了FFProbe工具&#xff0c;并确保其路径正确配置。 2.检查系统环境变量是否正确设置&#xff0c;包括FFPr…

CSS鼠标样式(cursor)

CSS cursor 属性值 属性值示意图描述auto默认值&#xff0c;由浏览器根据当前上下文确定要显示的光标样式default 默认光标&#xff0c;不考虑上下文&#xff0c;通常是一个箭头none不显示光标initial将此属性设置为其默认值inherit从父元素基础 cursor 属性的值context-menu…

【深度解析】蓝牙室内定位方案优势介绍

万物互联时代&#xff0c;数据的价值进一步凸显&#xff0c;在海量数据中&#xff0c;位置数据成为万物互联产业中的基础坐标。室内空间结构越来越复杂&#xff0c;人们对位置的实时性和精确度要求不断提高&#xff0c;室内定位的需求也空前高涨。卫星信号对障碍物的穿透性较弱…

git使用教程

一 创建环境 参考 Git 安装配置 | 菜鸟教程 (runoob.com)https://www.runoob.com/git/git-install-setup.html 1.1 配置 $ git config --global user.name "runoob" $ git config --global user.email test@runoob.com 1.2 创建一个新文件夹 在新的文件夹执行(…

额外题目第1天|1365 941 1207 283 189 724 34 922 35 24

1365 暴力解法也能过 class Solution { public:vector<int> smallerNumbersThanCurrent(vector<int>& nums) {vector<int> result(nums.size(), 0);for (int i0; i<nums.size(); i) {int count 0;for (int j0; j<nums.size(); j) {if (nums[j]<…

无涯教程-jQuery - jQuery.getScript( url, callback )方法函数

jQuery.getScript(url&#xff0c;[callback])方法使用HTTP GET请求加载并执行JavaScript文件。 该方法返回XMLHttpRequest对象。 jQuery.getScript( url, [callback] ) - 语法 $.getScript( url, [callback] ) 这是此方法使用的所有参数的描述- url - 包含请求…

Educational Codeforces Round 152 (Rated for Div. 2) B. Monsters

很早想到%K排序,但是就是WA2,心态崩了,昨天晚上差点睡不着觉吐了,感觉自己好笨啊啊啊, 言归正传, 按照正常的思路,样例是可以过的,但是AC不了,例如给出样例3 3 3 1 2 经过自己模拟应该输出1 3 2 ,但是只会输出1 2 3 ,知道症结所在debug,0的先输出,之后输出k-1,k-2…但是怎么实现…

物联网的通信协议

物联网的通信协议 目录 物联网的通信协议一、UART串口通信1.1 串口通信1.2 异步收发1.3 波特率1.4 串口通信协议的数据帧1.5 优缺点1.5.1 优点1.5.2 缺点 二、I^2^C2.1 I^2^C2.2 I^2^C2.3 数据有效性2.4 起始条件S和停止条件P2.5 数据格式2.6 协议数据单元PDU2.7 优缺点2.7.1 优…

Python教程三:Python基本概念

1、Python基本语法 Python中严格区分大小写Python中每一行就是一条语句&#xff0c;每条语句以换行结束每一行语句不建议过长&#xff08;一般不建议超过80个字符&#xff09;一条语句可以多行编写&#xff0c;语句后加\结尾Python是缩进严格的语言&#xff0c;所以在Python中…

RNN架构解析——注意力机制

目录 注意力机制实现 注意力机制 实现