git工具使用详细教程-------命令行和TortoiseGit图形化

下载

git下载地址:https://git-scm.com/downloads

TortoiseGit(图形化工具)下载地址:https://tortoisegit.org/download/

认识git结构

工作区:存放代码的地方

暂存区:临时存储,将工作区的代码让git知道,通过git add将代码放到暂存区

本地库:将暂存区的代码提交到本地库,就会生成对应的历史版本,这个代码就无法删除

远程库:将本地库的代码推送到远程库

git常用的命令

git config --global user.name 用户名               设置用户名

git config --global user.email 邮箱                   设置用户邮箱

git init                                                               初始化本地库

git status                                                          查看本地库状态

git add 文件名                                                  添加到暂存区

git commit -m " 日志信息" 文件名                    提交到本地库

git reflog                                                          查看历史记录

git reset --hard 版本号                                     版本穿梭

git命令行操作

git在安装好之后,右击鼠标,会出现Open Git Bash here,这里是打开本地的git命令行终端的位置。

设置用户名和邮箱的作用是,之后再向服务提交数据的时候,标注作者,在每一个版本的提交信息中可以查看到。

其中 --global 是⼀个可选项。如果使⽤了该选项,表⽰这台机器上所有的 Git 仓库都会使⽤这个配置。如果你希望在不同仓库中使⽤不同的 name 或 e-mail ,可以不要 --global 选项,但要注意的是,执⾏命令时必须要在仓库⾥。

在这里设置好用户的名称和邮箱之后,使用cat ~/.gitconfig可以查看本地的作者名称和邮箱信息。

初始化本地仓库

使用git init的作用是获取当前目录的管理权。

首先,我们在当前文件夹下进行上图操作,显示当前文件夹下影藏文件。这个时候,当前文件夹是没有隐藏的文件的。

然后我们在命令行终端执行git init

可以看见,这里出现了.git的隐藏文件夹。.git文件夹是Git跟踪管理仓库的,不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库破坏了。

查看本地库状态

git status

在当前目录下,创建文件

然后再次查看本地库状态

这里的红色,表示工作区存在文件,但是git从未追踪过这个文件。

添加暂存区

git add 文件名

使用git add将文件添加至暂存区之后,让后再次查看本地库状态,这个文件就变成了绿色。

提交本地库

git commit -m " 日志信息" 文件名

使用git commit -m '日志信息'命令之后,再查看本地库的状态,绿色的文件消失了。使用git reflog查看提交的日志信息,使用git log查看完整的提交日志信息。

git命令行完整操作

修改当前文件内容

查看本地库状态

git追踪到工作区的文件修改,将该文件标红。

将文件添加到暂存区

文件有红色变为绿色

将文件提交到本地库,查看本地库状态,工作区文件就处理好了

历史版本

查看历史版本

git reflog 查看版本信息

git log 查看版本详细信息

版本回退

git reset –hard 版本号

Git 切换版本, 底层其实是移动的 HEAD 指针。

git分支操作

分支操作命令

git branch 分支名                    创建分支

git branch -v                            查看分支

git checkout 分支名                 切换分支

git merge 分支名                     把指定的分支合并到当前分支上

查看分支

git branch -v                            查看分支

当前只有主分支。

创建分支

git branch 分支名                    创建分支

创建分支,再使用git branch -v查看分支,如上。现在有了两条分支,且工作分支还是在主分支上,主分支显示为绿色。

切换分支

git checkout 分支名                 切换分支

现在分支已经切换到了branchTest上了,对应分支也变成了绿色了。

修改文件内容如下

git检查本地库状态

可以看见,在刚刚新建的分支上,检查到工作区上有修改的文件。

将修改的文件添加至暂存区,在提交到本地库中。

合并分支

git merge 分支名                     把指定的分支合并到当前分支上

这里将在master分支上合并branchTest分支。

切回master分支上

再合并branchTest分支

现在再查看test.txt文件的内容,如下

冲突

产生冲突

冲突产生的表现: 后面状态为 MERGING

冲突产生的原因:

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。 Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

查看状态(检测到有文件有两处修改)

首先在master分支上修改test.txt文件,修改如下

切换到branchTest分支上,修改test.txt文件,修改如下

再回到master分支上合并branchTest分支

这个时候就可以看见已经产生了冲突

解决冲突

特殊符号: <<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> branchTest

修改文件如下

接下来再将文件添加至暂存区,提交到本地库。

注意:我们修改的只是master分支的内容,hot-fix分支的内容没有发生改变

远程仓库操作

git remote -v                                       查看当前所有远程地址别名

git remote add 别名 远程地址            起别名(第一次)

git push 别名 分支                              推送本地分支上的内容到远程仓库

git clone 远程地址                              将远程仓库的内容克隆到本地(第一次)

git pull 远程库地址别名 远程分支名   将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

创建远程仓库别名

git remote -v 查看当前所有远程地址别名

git remote add 别名 远程地址

拉取远程仓库内容

git pull 远程库地址别名 远程分支名   (将远程仓库对应分支最新内容拉下来后与当前本地分支直接合并)

首次拉取会出现错误Git 认为你的本地分支和远程分支的提交历史是完全独立的,因此拒绝合并。

 解决办法:使用git pull 拉去远程分支加上--allow-unrelated-histories选项

过程中会自动打开一个文件,键盘输入:q推出即可

然后,在本地文件夹中就能看见远程分支中的文件了。

推送本地分支至远程仓库

git push 别名 分支   (推送的最小单位是分支,所以一定要指定分支)

将本地的master分支推送至远程仓库

首先本地分支切换到master分支,然后将master分支推送至远程仓库。

这里就推送成功了。再远程仓库中也能查看到刚刚提交的文件。

克隆远程仓库至本地

git clone 远程地址                              将远程仓库的内容克隆到本地(第一次)

我们将远程仓库克隆至桌面上。

首先在桌面上打开git终端,然后在gitee仓库中拿到仓库地址

然后再去桌面打开的git终端上进行命令行操作

打开文件,可以看见文件夹的内容和远程仓库都是一样的了。

图形化界面操作

建立本地仓库

建立本地仓库有两种方式。git init 方式git clone 方式

git init方式

新建立一个tortoiseTest目录,进入目录,然后右键点击 Git Create repository here , 会自动生成一个.git 隐藏目录。

然后弹出一个对话框,选择ok

现在目录下就产生了一个.git隐藏目录结构了

git clone方式

这时候会弹出一个框 , URL 是远程仓库的地址,Directory 是存放在哪个目录下。

完成之后点击close关闭

接着在目录下就会出现远程仓库克隆的副本

提交代码

在刚刚克隆的本地仓库中新增一个文件tortoiseGit.txt文件

首先将文件添加到暂存区中,右键选择Git add

在弹出的对话框中选择ok

继续选择ok

查看版本库

右键,选择tortoiseGit,然后选择Repo-browser

然后就能看见已经将文件提交至了版本库中了

续上刚刚的提交代码部分,继续右键选择Git Commit

在Message输入提交信息,选择commit

接着选择push

然后选择本地和远程对应需要的分支,点击ok

然后文件就提交完成了,点击close

在远程仓库中就能查看到刚刚提交的文件了

更新代码

首先在远端文件进行修改

回到本地仓库中,右键,选择 pull

选择远端仓库的名称和分支,然后点击ok

接着就把远端仓库的文件更新至本地仓库了。选择close

查看本地仓库的文件,就能看见刚刚在远端修改的文件,在本地也更新了

回滚版本

右键,选择tortoiseGit,然后选择show log

选中某个版本右键点击 Reset master to this 即可

接下来出现的对话框选择ok

回滚完成,选择close

查看版本库,里边就没刚刚的tortoiseGit.txt文件了

创建分支

右键点击Create Branch

输入新建分支的名称,然后点击ok

切换分支

右键点击checkout

选择刚刚创建的分支名

然后选择close

合并分支

解决冲突

首先我们构建一个冲突,比如我之前在分支master上提交了一次代码,然后我在另外一个文件夹上在没有拉取的情况下也修改了同一处地方,然后提交的时候,会提示我们先拉取分支,然后再提交,拉取后又提示我们先要解决冲突,

在远端仓库做以下修改

然后在本地仓库做以下修改

然后将本地的文件推送至远端仓库上,就会产生冲突,这里提示在推送之前先整合远端仓库的变化。

然后我么在拉取远端仓库的文件,就发生了冲突。因为远端仓库的修改和本地的修改并不相同,需要人为的选择

在本地文件中修改冲突

修改如下

 选择resolve解决,点击ok

选择提交

小的对话框点击确定,

写入自己的提交信息

然后提交

推送至远端仓库

点击close完成推送,然后查看远端仓库文件信息

再查看本地文件信息,文件颜色变绿了

忽略上传文件列表

添加忽略文件

在本地仓库新建一个需要忽略的文件

现在右键选择git add,可以看见git是能检查出当前工作区内容的变化的

现在,选择cancel,回到目录。选中需要忽略的文件,右键选择TortoiseGit,选择add to ignore list,然后后边有两个选项,一个是忽略当前文件,另外一个是忽略当前文件后缀的所有文件。按照你的需求进行选择。

然后选择忽略类型和忽略文件存放的位置

然后该目录就生成了对应的忽略文件

点击查看忽略文件内容,我们刚刚的文件就被加进去了。

现在再去查看工作区,就已经干干净净了

然后,现在需要把新的忽略文件提交至远程仓库。直接选择git commit,添加提交信息推送至远程仓库

推送成功

在远端查看新的忽略文件

将忽略的文件再次提交

在本地的忽略文件中将忽略文件的信息删除

然后选择git add,将工作区的文件添加至暂存区

可以看见,忽略文件又能被git检测出来了。选择git commit

推送至远程仓库,

成功之后,查看远程仓库中,就有了刚刚被忽略的文件。

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

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

相关文章

构建RAG混合开发---PythonAI+JavaEE+Vue.js前端的实践

7GB显存如何部署bf16精度的DeepSeek-R1 70B大模型&#xff1f;-CSDN博客 服务容错治理框架resilience4j&sentinel基础应用---微服务的限流/熔断/降级解决方案-CSDN博客 conda管理python环境-CSDN博客 快速搭建对象存储服务 - Minio&#xff0c;并解决临时地址暴露ip、短…

【Java ee初阶】jvm(3)

一、双亲委派机制&#xff08;类加载机制中&#xff0c;最经常考到的问题&#xff09; 类加载的第一个环节中&#xff0c;根据类的全限定类名&#xff08;包名类名&#xff09;找到对应的.class文件的过程。 JVM中进行类加载的操作&#xff0c;需要以来内部的模块“类加载器”…

wps excel将表格输出pdf时所有列在一张纸上

记录&#xff1a;wps excel将表格输出pdf时所有列在一张纸上 1&#xff0c;调整缩放比例&#xff0c;或选择将所有列打印在一页 2&#xff0c;将表格的所有铺满到这套虚线

分布式微服务系统架构第134集:笔记1运维服务器经验,高并发,大数据量系统

加群联系作者vx&#xff1a;xiaoda0423 仓库地址&#xff1a;https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus https://webvueblog.github.io/JavaPlusDoc/ ✅ 一、查看端口是否被占用的常用命令 1️⃣ lsof 命令&…

IS-IS 中间系统到中间系统

前言&#xff1a; 中间系统到中间系统IS-IS&#xff08;Intermediate System to Intermediate System&#xff09;属于内部网关协议IGP&#xff08;Interior Gateway Protocol&#xff09;&#xff0c;用于自治系统内部 IS-IS也是一种链路状态协议&#xff0c;使用最短路径优先…

前端安全:XSS、CSRF 防御与最佳实践

引言 随着互联网应用的普及&#xff0c;前端安全问题日益凸显。作为开发者&#xff0c;了解并防范常见的安全威胁至关重要。本文将深入探讨两种最常见的前端安全威胁&#xff1a;跨站脚本攻击&#xff08;XSS&#xff09;和跨站请求伪造&#xff08;CSRF&#xff09;&#xff…

uniapp 弹窗封装(上、下、左、右、中五个方位)

无脑复制即可&#xff01;&#xff01;&#xff01; <template><view><viewv-if"mask"class"tui-drawer-mask":class"{ tui-drawer-mask_show: visible }":style"{ zIndex: maskZIndex }"tap"handleMaskClick&qu…

Axure制作可视化大屏动态滚动列表教程

在可视化大屏设计中&#xff0c;动态滚动列表是一种常见且实用的展示方式&#xff0c;能够有效地展示大量信息。本文将详细介绍如何使用Axure制作一个动态滚动的列表展示模块。 一、准备工作 打开Axure软件&#xff1a;确保你已经安装并打开了Axure RP软件。创建新项目&#x…

零基础玩转Apache Superset可视化部署

根据官方Quick Start Guide&#xff0c;你可以按照以下步骤进行部署&#xff1a; 1. 确认环境2. 获取代码3. 获取官方最新代码4. 启动服务5. 访问Superset Web界面6. 接入数据源 前提条件&#xff1a; dockerdocker compose 1. 确认环境 安装Docker和Docker Compose 确保你…

服务器数据恢复—XFS文件系统分区消失的数据恢复案例

服务器数据恢复环境&故障&#xff1a; 服务器上有一组由raid卡组建的raid5磁盘阵列。上层安装linux才做系统&#xff0c;采用XFS文件系统&#xff0c;划分了3个分区。 管理员将服务器的操作系统重装后&#xff0c;发现服务器上的分区发生了改变&#xff1a;一个分区消失&am…

2025/5/18

继续研究一下大佬的RAG项目。开始我的碎碎念。 RAG可以分成两部分&#xff1a;一个是问答&#xff0c;一个是数据处理。 问答是人提问&#xff0c;然后查数据库&#xff0c;把查的东西用大模型组织成人话&#xff0c;回答人的提问。 数据处理是把当下知识库里的东西&#xf…

在 Vue 中插入 B 站视频

前言 在 Vue 项目中&#xff0c;有时我们需要嵌入 B 站视频来丰富页面内容&#xff0c;为用户提供更直观的信息展示。本文将详细介绍在 Vue 中插入 B 站视频的多种方法。 使用<iframe>标签直接嵌入,<iframe>标签是一种简单直接的方式&#xff0c;可将 B 站视频嵌…

OpenCv高阶(八)——摄像头调用、摄像头OCR

文章目录 前言一、摄像头调用通用方法1、导入必要的库2、创建摄像头接口 二、摄像头OCR1.引入库2、定义函数&#xff08;1&#xff09;定义显示opencv显示函数&#xff08;2&#xff09;保持宽高比的缩放函数&#xff08;3&#xff09;坐标点排序函数&#xff08;4&#xff09;…

特斯拉虚拟电厂:能源互联网时代的分布式革命

在双碳目标与能源转型的双重驱动下&#xff0c;特斯拉虚拟电厂&#xff08;Virtual Power Plant, VPP&#xff09;通过数字孪生技术与能源系统的深度融合&#xff0c;重构了传统电力系统的运行范式。本文从系统架构、工程实践、技术挑战三个维度&#xff0c;深度解析这一颠覆性…

【漫话机器学习系列】258.拐点(Inflection Point)

拐点&#xff08;Inflection Point&#xff09;详解&#xff1a;定义、原理与应用 在数学分析与数据建模中&#xff0c;“拐点&#xff08;Inflection Point&#xff09;”是一个非常重要的概念。今天这篇文章&#xff0c;我们将结合图示&#xff0c;深入理解拐点的定义、数学…

语音识别——声纹识别

通过将说话人的声音与数据库中的记录声音进行比对&#xff0c;判断说话人是否为数据库白名单中的同一人&#xff0c;从而完成语音验证。目前&#xff0c;3D-Speaker 声纹验证的效果较为出色。 3D-Speaker 是一个开源工具包&#xff0c;可用于单模态和多模态的说话人验证、说话…

DeepSeek 赋能军事:重塑现代战争形态的科技密码

目录 一、引言&#xff1a;AI 浪潮下的军事变革与 DeepSeek 崛起二、DeepSeek 技术原理与特性剖析2.1 核心技术架构2.2 独特优势 三、DeepSeek 在军事侦察中的应用3.1 海量数据快速处理3.2 精准目标识别追踪3.3 预测潜在威胁 四、DeepSeek 在军事指挥决策中的应用4.1 战场态势实…

uWSGI是什么?

uWSGI 是一个功能强大的应用服务器&#xff0c;专为部署高性能 Web 应用设计&#xff0c;尤其适合 Python 生态系统。以下是对其核心介绍及适用场景的总结&#xff1a; uWSGI 是什么&#xff1f; uWSGI 是一个实现了 WSGI&#xff08;Web Server Gateway Interface&#xff09…

Digi XBee XR 系列介绍

Digi 延续了 20 多年来亚 GHz 射频模块的传统&#xff0c;推出了 Digi XBee XR 系列远距离模块&#xff0c;包括 Digi XBee XR 900 - 已通过多个地区的预先认证 - 以及 Digi XBee XR 868 - 已通过欧洲地区应用的预先认证。 这些先进的射频模块专为远距离抗干扰无线通信而设计。…

RabbitMq C++客户端的使用

介绍 RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用于在分布式系统之间传递消息。它实现了高级消息队列协议(AMQP)&#xff0c;同时也支持其他协议如 STOMP、MQTT 等。 核心概念 Producer(生产者): 发送消息的应用程序 Consumer(消费者): 接收消息的应用程序 Q…