[git] git基础知识

git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目

git易于学习,性能极快

什么是版本控制?

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况,可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换(版本控制本质就是用git管理文件夹,是为了保留之前所有的版本,以便回滚和修改)

Git的常用命令

查看git的版本号

git --version

想要让git对一个目录进行版本控制需要以下步骤:

1.进入要管理的文件夹

2.执行初始化命令(初始化本地库

git init

git init 命令会把这个目录变成git可以管理的仓库

该命令执行完后会在当前目录生成一个 .git 目录,所有 git 所需要的数据和资源都存放在这个目录中

3.管理目录下的文件状态(查看本地库当前的状态,显示有变更的文件)

git status

4.管理指定文件(添加文件到暂存区)

git add 文件名
git add .

5.设置用户签名:用户名称、电子邮箱地址【配置一次即可】 

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

提示Tips

1.签名的作用是区分不同操作者身份,用户的签名信息在每一个版本的提交信息中都能够看到,以此确认本次提交是谁做的。git首次安装必须设置一下用户签名,否则无法提交代码

2.注意这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系

6.生成版本(将暂存区内容添加到本地库中)

git commit -m "描述信息"

修改文件后重新添加到本地库中

查看状态(检测到工作区有文件被修改)

git status

将修改的文件再次添加到暂存区

git add .

查看状态(工作区的修改添加到了暂存区)

git status

提交到本地库

git commit -m "描述信息"

版本穿梭(回滚)

查看历史提交记录

git log

git log该命令显示了从最新提交到最早提交的所有提交信息,包括提交的作者、提交日期和提交信息等  

git reflog

git reflog该命令也可以查看历史记录  

git reflog  查看版本信息

git log  查看版本详细信息

回滚至之前的版本

git log
git reset --hard 版本号

回滚至之后的版本

git reflog
git reset --hard 版本号

git分支操作

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN

如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过在某个时间点,两个平行宇宙合并了,结果你既学会了git又学会了SVN 

在版本控制过程中,同时推进多个任务,我们可以为每个任务单独的创建分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。分支可以简单理解为副本,一个分支就是一个单独的副本

使用分支的好处

1.同时并行推进多个功能开发,提高开发效率

2.各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可

查看分支

git branch -v

创建分支

git branch 分支名称

切换分支

git checkout 分支名称

创建+切换分支

git checkout -b 分支名称

合并分支(把指定的分支合并到当前分支上)

git merge 需要进行合并的分支名称

提示Tips

合并分支有时也会产生冲突 ,产生冲突的原因是合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,git无法替我们决定使用哪一个,必须人为决定新代码内容

删除分支

git branch -d 需要删除的分支名称

实际应用案例:基于分支紧急修复线上bug

当你接到修复一个代号001的bug的任务时,很自然地,我们可以创建一个分支bug-001来修复它,但是当前正在dev分支上进行的工作还没有提交,我们可以使用git提供的git stash功能,可以把当前工作现场"储藏"起来,等以后恢复现场后继续工作

在dev分支上使用如下git指令

git stash

首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支

查看分支

git branch -v

切换回master分支

git checkout master

创建并切换到bug-001分支

git checkout -b bug-001

查看现在所处的分支是否为bug分支

git branch -v

③ 在bug-001分支上进行修复出错的代码后,进行提交

git add .
git commit -m "bug修复完成"

提交完成后,切换回master分支,进行分支合并,最后删除bug分支 

git checkout master
git merge bug-001
git branch -d bug-001

现在bug-001修复完成,是时候接着回到dev分支进行干活了 

git checkout dev
git stash pop

提示Tips

修复bug时,我们会通过创建新的bug分支进行修复,然后进行合并,最后进行删除
当手头工作没有完成时,先把工作现场 git stash 一下,然后去修复bug,修复完bug之后,再使用 git stash pop 恢复工作现场

代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库

GitLab、GitHub、Gitee码云

局域网

    √  GitLab

互联网

    √  GitHub(外网)

    √  Gitee码云(国内网站)

创建远程库别名

git remote add 别名 远程库地址

查看当前所有远程地址别名

git remote -v

推送本地库分支到远程库 

git push 别名 分支

拉取远程库到本地库 

git pull 别名 分支

克隆远程库到本地库

git clone 需要克隆的远程库地址

克隆clone会帮我们进行拉取代码、初始化本地仓库以及创建别名 

Git常用命令速查表

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

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

相关文章

微信开发之获取收藏夹列表的技术实现

简要描述: 获取收藏夹内容 请求URL: http://域名地址/weChatFavorites/favSync 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数…

将Linux上的cpolar内网穿透配置为开机自启动——“cpolar内网穿透”

将Linux上的cpolar内网穿透配置为开机自启动 文章目录 将Linux上的cpolar内网穿透配置为开机自启动前言一、进入命令行模式二、输入token码三、输入内网穿透命令 前言 我们将cpolar安装到了Ubuntu系统上,并通过web-UI界面对cpolar的功能有了初步了解。当然cpolar除…

黑马头条项目学习--Day3: 自媒体文章发布

Day3: 自媒体文章发布 Day3: 自媒体文章发布1) 素材管理-图片上传a) 前期微服务搭建b) 具体实现 2) 素材管理-图片列表a) 接口定义b) 具体实现 3) 素材管理-照片删除/收藏a) 图片删除a1) 接口定义a2) 代码实现 b) 收藏与取消b1) 接口定义b2) 代码实现 4) 文章管理-频道列表查询…

shell脚本之正则表达式

目录 一.常见的管道命令1.1sort命令1.2uniq命令1.3tr命令1.4cut命令1.5实例1.5.1统计当前主机连接状态1.5.2统计当前主机数 二.正则表达式2.1正则表达式的定义2.2常见元字符(支持的工具:find,grep,egrep,sed和awk&…

面试总结-c++

1该吹牛逼吹牛逼。在自己能说出个所以然的情况下,该吹就吹,不吹没工作,吹了有希望。 比如 c组长,确有其事,但是挺唬人。说自己在北京定居也是侧面吹牛逼,证明自己的能力。还有媳妇在研究所。 2.对自己做过…

【论文阅读】EULER:通过可扩展时间链接预测检测网络横向移动(NDSS-2022)

作者:乔治华盛顿大学-Isaiah J. King、H. Howie Huang 引用:King I J, Huang H H. Euler: Detecting Network Lateral Movement via Scalable Temporal Graph Link Prediction [C]. Proceedings 2022 Network and Distributed System Security Symposium…

【JavaSpring】注解开发

注解开发定义bean 不指定名称 package org.example.service.impl;import org.example.dao.BookDao; import org.example.service.BookService; import org.springframework.stereotype.Component;Component public class BookServiceimpl implements BookService {private Bo…

QGIS开发五:VS使用QT插件创建UI界面

前面我们说了在创建项目时创建的是一个空项目,即不使用 Qt 提供的综合开发套件 Qt Creator,也不使用 Qt Visual Studio Tools 这类工具。 但是后面发现,如果我想要有更加满意的界面布局,还是要自己写一个UI文件,如果不…

pdf怎么压缩到1m?这样做压缩率高!

PDF是目前使用率比较高的一种文档格式,因为它具有很高的安全性,还易于传输等,但有时候当文件体积过大时,会给我们带来不便,这时候简单的解决方法就是将其压缩变小。 想要将PDF文件压缩到1M,也要根据具体的情…

Docker环境下MySQL备份恢复工具XtraBackup使用详解 | Spring Cloud 62

一、XtraBackup 简介 Percona XtraBackup是一个开源的MySQL和MariaDB数据库备份工具,它能够创建高性能、一致性的备份,并且对生产环境的影响很小。Percona XtraBackup通过在不停止MySQL服务器的情况下,复制InnoDB存储引擎的数据文件和事务日…

css实现,正常情况下div从左到右一次排列,宽度超出时,右侧最后一个div固定住,左侧其他div滚动

需求:正常情况下 宽度超出时: 实现: <templete><div class"jieduanbox"><div v-for"(item, index) in stageList" :key"index" style"display: inline-block">.......</div><div class"rightBtn&q…

面向云思考安全

Gartner最近的一项研究表明&#xff0c;到 2025 年&#xff0c;85% 的企业会采用云战略&#xff0c;虽然这一数字是面向全球的&#xff0c;但可以看到在中国的环境中&#xff0c;基于云所带来的优势&#xff0c;越来越多的企业也同样开始积极向云转型。 但同时&#xff0c;有报…

39 printf 的输出到设备层的调试

前言 在前面 printf 的调试 我们只是调试到了 glibc 调用系统调用, 封装了参数 stdout, 带输出的字符缓冲, 以及待输出字符长度 然后内核这边 只是到了 write 的系统调用, 并未向下细看 我们这里 稍微向下 细追一下, 看看 到达设备层面 这里是怎么具体的 impl 的 测试用例…

Android Studio 屏幕适配

Android开发屏幕适配流程 首先studio中没有ScreenMatch这个插件的&#xff0c;下去现在这个插件 点击File->settings->Plugins->(搜索ScreenMatch插件)&#xff0c;点击下载&#xff0c;应用重启Studio即可&#xff0c;如下图 在values下 创建dimens.xml&#xff0c…

【云原生】Kubernetes控制器中DaemonSet与Job的使用

目录 DaemonSet 1 什么是 DaemonSet 2 使用 DaemonSet Job 1 什么是 Job 2 使用 Job 3 自动清理完成的 Job 控制器无法解决问题 DaemonSet 1 什么是 DaemonSet DaemonSet | Kubernetes DaemonSet 确保全部&#xff08;或者某些&#xff09;节点上运行一个 Pod 的副本…

解决Centos/Linux操作系统安装 uWSGI项目报错

解决linux 操作系统编译uWSGI源码报错 最近在学习在Linux操作系统中使用uWSGI项目部署django项目,在使用源码安装uWSGI项目的时候报错。 报错如下&#xff1a; In file included from plugins/python/python_plugin.c:1:0: plugins/python/uwsgi_python.h:4:20: 致命错误&…

如何创建51单片机KEIL工程

如何创建51单片机KEIL工程步骤&#xff1a; &#xff08;1&#xff09;打开keil软件&#xff0c;点击工具栏-Project&#xff0c;选择创建新的工程&#xff1b; &#xff08;2&#xff09;然后给工程命名&#xff0c;文章以project为例&#xff0c;然后点击保存 &#xff08…

SpringBoot自动装配及run方法原理探究

自动装配 1、pom.xml spring-boot-dependencies&#xff1a;核心依赖在父工程中&#xff01;我们在写或者引入一些SpringBoot依赖的时候&#xff0c;不需要指定版本&#xff0c;就因为有这些版本仓库 1.1 其中它主要是依赖一个父工程&#xff0c;作用是管理项目的资源过滤及…

buildroot使用介绍

buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样&#xff0c;通过buildroot配置&#xff0c;menuconfig修改&#xff0c;编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包…

助力农村金融机构数字化转型,原点安全将出席“第十三届中国农村金融机构信息化发展创新大会”

农村金融机构作为服务“三农”的主力军&#xff0c;在我国金融体系中扮演着重要的角色。近年来&#xff0c;我国农村金融机构积极贯彻落实人民银行《金融科技发展规划&#xff08;2022—2025年&#xff09;》中国银保办公厅《关于银行业保险业数字化转型的指导意见》的相关措施…