Git超详细教程

文章目录

  • 一、安装并配置Git
  • 二、Git的基本操作
  • 三、Github/GitLab/Gitee
  • 四、分支


一、安装并配置Git

查看所有的全局配置项

git config --list --global

查看指定的全局配置项

git config user.name
git config user.email

配置用户信息

git config --global user.name "xiaoming"
git config --global user.email "123@qq.com"

如果使用了–global选项,那么命令只需要运行一次,即可永久生效。

获取帮助信息

#要想打开git config命令的帮助手册
git help config
#要想获取git config命令的快速参考
git config -h

二、Git的基本操作

Git的基本操作

#初始化仓库
git init# 检查文件的状态
git status# 以精简的方式显示文件状态
git status -s
# 或
git status --short# 跟踪新文件
# 跟踪index.html
git add index.html
# 跟踪所有文件
git add .#git add .出现warning警告信息
git config core.autocrlf false# 提交更新
git commit
# 提交更新,-m选项后面是本次提交内容的描述
git commit -m "v1.0.0"
#此时会出现 nothing to commit,working tree clean.# 清空窗口
clear

如果修改了文件,然后执行git status会出现红色的modified:index.html,表示已修改的状态,但是还没有放到暂存区。

如果执行git status -s,会出现红色的 M index.html,表示已修改的状态,但是还没有放到暂存区。

# 撤销对文件的修改
git checkout --index.html

修改的文件显示的是红色的M,还没有放到暂存区显示的是红色的??

 # 取消暂存的文件git reset HEAD 要移除的文件名称# git跳过暂存区,直接进行提交git commit -a -m “描述信息”# Git仓库和工作区都移除文件git rm -f index.html# Git仓库移除文件git rm --cached index.html

.gitignore文件的例子

# 忽略所有的.a文件
*.a#跟踪所有的 lib.a,即便在前面忽略了 .a文件
!lib.a#只忽略当前目录下的T0D0文件,而不忽略shbdir/T0D0
/T0D0#忽略任何目录下名为build的文件夹
build/#忽略doc/notes.txt,但不忽略doc/server/arch.txt
doc/*.txt#忽略doc/目录及所有子目录下的.pdf文件
doc/**/*.pdf

查看提交历史

 # 按照时间先后顺序列出所有的提交历史,最近的提交排在最上面git log#只展示最新的两条提交历史,数字可以按需进行填写git log -2#在一行上展示最近两条提交历史的信息git log -2 --pretty=oneline#在一行上展示最近两条提交历史的信息,并自定义输出的格式# %h提交的简写哈希值,%an作者名字,%ar作者修订日期,按多久以前的方式显示,%s提交说明git log -2 --pretty==format:"%h | %an | %ar | %s"

回退到指定的版本

   # 在一行上展示所有的提交历史git log --pretty=oneline#使用 git reset --hard命令,根据指定的提交ID回退到指定版本git reset --hard<CommitID>#在旧版本中使用git reflog --pretty==oneline命令,查看命令操作的历史git reflog --pretty=oneline#再次根据最新的提交ID,跳转到最新的版本git reset --hard<CommitID>

三、Github/GitLab/Gitee

HTTPS:零配置,但是每次访问仓库时,需要重复输入账号和密码才能访问成功;

SSH:需要进行额外的配置,但是配置成功后,每次访问仓库时,不需要重复输入账号和密码。

 #将本地仓库和远程仓库进行关联,并把远程仓库命名为origingit remote add origin 地址#案例git remote add origin ssh://git@192.168.1.209:8222/yuxiao/tool.git#将本地仓库中的内容推送到远程的origin仓库中(第一次)git push -u origin master#第二次以上git push

检测SSH key是否配置成功

ssh -T git@github.com

#将远程仓库克隆到本地
git clone 远程仓库的地址

四、分支

master主分支

在初始化本地Git仓库时,Git默认已经帮我们创建了一个名字为master的分支。通常我们把这个master分支叫做主分支。

在实际工作中,master主分支的作用是:用来保存和记录整个项目已完成的功能代码。

因此,不允许程序员直接在master分支上修改代码,因为风险大,容易导致整个项目崩溃。

# 查看分支列表(查看当前属于哪个分支)
git branch# 创建新分支
git branch 分支名称

新分支的代码和当前分支代码一样

# 切换分支
git checkout login# 分支的快速创建和切换
git checkout -b 分支名称
#(创建上述的分支,要使用master分支进行操作,这是约定)

合并分支

# 切换到master主分支
git checkout master# 在master分支上运行git merge命令,将logo分支的代码合并到master分支
git merge logo# 删除分支
git branch -d 分支名称#如果分支没有合并到master,需要强制删除分支
git branch -D 分支名称

遇到冲突时的分支合并

如果在两个不同的分支中,对同一个文件进行了不同的修改,Git就没法干净的合并他们,此时,我们需要打开这些分支冲突的文件,然后手动解决冲突。

# 假设:在reg分支合并到master分支期间,代码发生了冲突
git checkout master
git merge reg#打开包含冲突的文件,手动解决冲突后,再执行如下的命令
git add .
git commit -m "解决了分支合并冲突的问题"

将本地分支推送到远程仓库 (重要)

  # -u表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带-u参数git push -u 远程仓库的别名 本地分支名称:远程分支名称#案例git push -u origin payment:pay#如果希望远程分支的名称和本地分支的名称保持一致,可以对命令进行简化:git push -u origin payment# 查看远程仓库中所有的分支列表git remote show 远程仓库名称#例如git remote show origin

跟踪分支

# 从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同
git checkout 远程仓库分支#示例
git checkout qd#从远程仓库中,把对应的远程仓库下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称#示例
git checkout -b reg origin/qd

拉取远程分支最新代码

  # 从远程仓库,拉取当前分支最新的代码,保持当前分支的代码和远程分支代码一致git pull

删除远程分支

  # 删除远程仓库中,指定名称的远程分支git push 远程仓库名称 --delete 远程分支名称# 示例git push origin --delete qd

清空远程仓库

git init
git remote add origin 远程地址
#对于error: failed to push some refsto‘远程仓库地址’
#1 使用如下命令(执行 git pull --rebase 的时候必须保持本地目录干净)
git pull --rebase origin master#我们需要使用以下命令清空Git仓库的内容:
git rm -r *
#接下来,我们需要使用以下命令创建一个空的提交记录:
git commit --allow-empty -m "删除所有内容"touch README.md
git add .
git commit -m "删除所有文件"
git push origin master

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

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

相关文章

python开发之个微机器人的二次开发

简要描述&#xff1a; 取消消息接收 请求URL&#xff1a; http://域名地址/cancelHttpCallbackUrl 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/json 参数&#xff1a; 参数名类型说明codestring1000成功&#xff0c;1…

水循环原理VR实景教学课件开发

日本核污水排海让人们越来越重视海洋大气层水循环的安全&#xff0c;水循环是一个周而复始、循环往复的动态过程&#xff0c;为了将水循环过程以形象、生动地形式展示出来&#xff0c;水循环VR全景动态演示逐渐受到大家青睐。 传统的水循环教育方式通常是通过图片、动画或实地考…

MySql安装包配置

电脑重配过多次&#xff0c;此为mysql安装记录贴&#xff0c;方便查阅 从官网下载的安装包进行本地配置 下载地址 解压下载下来的zip压缩包 解压出来的文件中新增配置my.ini文件 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\software\\package\\M…

Adobe Acrobat Reader界面改版 - 解决方案

问题 日期&#xff1a;2023年9月 Adobe Acrobat Reader下文简称Adobe PDF Reader&#xff0c;此软件会自动进行更新&#xff0c;当版本更新至2023.003.20284版本后。 软件UI界面会大改版&#xff1a;书签页变成了右边、工具栏变到了左边、缩放按钮变到了右下角&#xff0c;如…

通过curl命令分析http接口请求各阶段的耗时等

目录 一、介绍二、功能1、-v 输出请求 响应头状态码 响应文本等信息2、-x 测试代理ip是否能在该网站使用3、-w 额外输出查看接口请求响应的消耗时间4、-o 将响应结果存储到文件里面5、-X post请求测试 (没测成功用的不多) 一、介绍 Curl是一个用于发送和接收请求的命令行工具和…

【LeetCode-简单题】977. 有序数组的平方

文章目录 题目方法一&#xff1a;双指针方法二&#xff1a; 题目 方法一&#xff1a;双指针 class Solution { // 方法一 &#xff1a;双指针public int[] sortedSquares(int[] nums) {int left 0;int right nums.length -1 ;int[] res new int[nums.length];//结果集新数组…

中金支付-对账文件接受base64后保存文件

前后接口不太清楚。 通过别人的对接沟通过程中看到这个问题&#xff0c;简单尝试成功后做个记录。 接口返回内容为Base64&#xff0c;那么先进行解码base64_decode。 解码后内容截图如下&#xff1a; 大概能看出来里面含有csv文件&#xff0c;且接口中说明&#xff1a;对账文件…

企业网络革命:连接和访问的智慧选项

近年来&#xff0c;企业网络通信需求可谓五花八门&#xff0c;变幻莫测。它不仅为企业的生产、办公、研发、销售提供全面赋能&#xff0c;同时也让企业业务规模变大成为了可能。今天&#xff0c;我们来聊聊广域网中两个不可忽视的概念&#xff1a;连接&#xff08;Connection&a…

统一潮流控制器 (UPFC) 的应用,以增强电力系统中的电压稳定性(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

自动打包机如何精准捆扎

打包机按照自动化程度大致可以分为半自动、自动和全自动三种&#xff0c;全自动大家都很熟悉&#xff0c;可以自动检测、自动输送、自动捆扎&#xff0c;而且捆扎位置先对比较精准&#xff0c;但半自动和自动打包机没有配置光电检测&#xff0c;因此捆扎位置总是不够固定&#…

Uniapp 解决组件在官方文档不支持的事件上,接收小程序原生组件事件

现在需要在抖音小程序上使用加粉丝群功能&#xff0c;官方 button 有自带这个功能&#xff0c;但是 Uniapp 官网并没有支持&#xff0c;一个是 open-type 类型&#xff0c;一个是回调事件 bindjoingroup&#xff1a; <buttonopen-type"joinGroup"group-id"xx…

2023年车载超声波雷达行业研究报告

第一章 行业概况 车载超声波雷达&#xff0c;通常在英文中被称为“Automotive Ultrasonic Radar”或“Automotive Ultrasonic Sensor”&#xff0c;是一种使用超声波来检测车辆周围物体的距离的传感器。这个行业主要关注的是为汽车提供停车辅助、防撞和其他安全功能。 图 超声…

k8s中无法获取到nginx-ingress的客户端真实ip地址x-forwarded-for

1.查看阿里云的nginx-ingress配置文档https://help.aliyun.com/document_detail/42205.html 容器K8s配置方案 如果您的服务部署在K8s上&#xff0c;K8s会将真实的客户端IP记录在X-Original-Forwarded-For字段中&#xff0c;并将WAF回源地址记录在X-Forwarded-For字段中。您需要…

前端请求接口地址反向代理后 状态码404、反向代理注意事项

目录 1. 反向代理代码&#xff08;有问题&#xff09;问题 2. 问题排查原因【排查步骤】【问题1】产生原因【问题2】产生原因【附&#xff1a;排查代码】 3. 总结 - 解决代码4. 总结 - 反向代理 1. 反向代理代码&#xff08;有问题&#xff09; 接口封装 export function Get…

回归与聚类算法系列④:岭回归

目录 1. 背景 2. 数学模型 3. 特点 4. 应用领域 5. 岭回归与其他正则化方法的比较 6、API 7、代码 8、总结 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发、数…

【Ubuntu】创建桌面快捷方式并固定到docker栏

以pycharm软件为例&#xff1a; 1.首先需要找到软件的可执行文件及其所在的位置 这个位置我放在&#xff1a;/opt/pycharm-community-2023.2.1/bin/pycharm.sh 可执行文件为&#xff1a;pycharm.sh 2.转到&#xff1a;/usr/share/applications 这个路径专门存放应用快捷方式…

【开发日记】MySQL TIMESTAMP 类型建表异常

MySQL TIMESTAMP 类型建表异常 建表报错信息 incalid default value for xxx建表语句 CREATE TABLE 表名&#xff08; ... 字段名 TIMESTAMP NULL DEFAULT 0000-00-00 00:00:00 , ... &#xff09;报错原因 MySQL的sql_mode参数会影响对日期时间的处理方式。如果NO_ZERO_D…

机器学习(12)---梯度下降(含手写公式、推导过程和手写例题)

梯度下降 一、概述1.1 梯度下降的用途1.2 梯度下降公式 二、公式讲解2.1 推导过程2.2 例题 一、概述 1.1 梯度下降的用途 1. 使用线性回归的平方误差成本函数时&#xff0c;成本函数不会也永远不会有多个局部最小值。因为它是凸函数&#xff0c;只有单一的全局最小值。通俗地说…

Linux之yum/git的使用

目录 一、yum 1、关于yum 2、yum的操作 ①、yum list ②、yum install ③、yum remove 二、git 1、Linux中连接gitee 2、git的操作 ①git add [文件] ②git commit -m "提交日志" ③git push 3、可能出现的问题 ①配置用户名、邮箱 ②出现提交冲突 ③…

antd setFieldsValue 设置初始值无效AutoComplete 设置默认值失败

antd form setFieldsValue 设置初始值无效 解决方案 setTimeout(()>{setFieldsValue(values)},100)antd AutoComplete 设置默认值失败 defaultValue 设置无效 解决方案 设置value&#xff0c;搭配onChange来设置修改