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

news2025/5/18 1:33:44

下载

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.coloradmin.cn/o/2378128.html

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

相关文章

Mysql新增

插入一个记录需要的时间由下列因素组成&#xff0c;其中的数字表示大约比例&#xff1a; 连接&#xff1a;(3)发送查询给服务器&#xff1a;(2)分析查询&#xff1a;(2)插入记录&#xff1a;&#xff08;1x记录大小&#xff09;插入索引&#xff1a;&#xff08;1x索引&#x…

AI Agent开发第64课-DIFY和企业现有系统结合实现高可配置的智能零售AI Agent(上)

开篇 我们之前花了将近10个篇章讲Dify的一些基础应用,包括在讲Dify之前我们讲到了几十个AI Agent的开发例子,我不知道大家发觉了没有,在AI Agent开发过程中我们经常会伴随着这样的一些问题: 需要经常改猫娘;需要经常改调用LLM的参数,甚至在一个流程中有3个节点,每个节点…

【嵌入式】记一次解决VScode+PlatformIO安装卡死的经历

PlatformIO 是开源的物联网开发生态系统。提供跨平台的代码构建器、集成开发环境&#xff08;IDE&#xff09;&#xff0c;兼容 Arduino&#xff0c;ESP8266和mbed等。 开源库地址&#xff1a;https://github.com/platformio 在 VScode 中配置 PlatformIO 插件&#xff0c;记录…

MySQL 事务(一)

文章目录 CURD不加控制&#xff0c;会有什么问题CURD满足什么属性&#xff0c;能解决上述问题&#xff1f;什么是事务为什么要有事务事务的版本支持了解事务的提交方式 事务常见操作方式研究并发场景事务的正常操作事务的非正常情况的案例结论事务操作的注意事项 CURD不加控制&…

【全解析】EN 18031标准下的 AUM 身份认证机制[下篇]

在上篇文章中&#xff0c;我们详细介绍了EN 18031标准中AUM身份认证机制的AUM - 1、AUM - 2和AUM - 3条款。今天&#xff0c;我们将继续深入探讨AUM - 4到AUM - 6的相关内容&#xff0c;进一步了解该标准如何保障无线电设备的身份认证安全。 一、AUM - 4&#xff1a;更改认证器…

彻底解决sublime text4无法打开install package界面安装插件问题

1. 说明 最新版的 sublime text4&#xff0c;不管是通过软件自带的命令安装的 package control 插件&#xff0c;还是从官网下载的 package control 插件&#xff0c;之后通过 CommandShiftP 打开面板&#xff0c;输入 Package Control&#xff0c;可能找不到 Package Control…

用户现场不支持路由映射,如何快速将安防监控EasyCVR视频汇聚平台映射到公网?

一、方案背景​ 随着数字化安防与智能交通管理发展&#xff0c;视频监控远程管理需求激增。EasyCVR作为专业视频融合平台&#xff0c;具备多协议接入等核心功能&#xff0c;是智能监控的重要工具。但实际部署中&#xff0c;当EasyCVR处于内网且路由器无法进行端口映射时&#…

C#实现访问远程硬盘(附源码)

在现实场景中&#xff0c;我们经常用到远程桌面功能&#xff0c;而在某些场景下&#xff0c;我们需要使用类似的远程硬盘功能&#xff0c;这样能非常方便地操作对方电脑磁盘的目录、以及传送文件。那么&#xff0c;这样的远程硬盘功能要怎么实现了&#xff1f; 这次我们将给出…

图片、音频、视频都能转?简鹿格式工厂了解一下

我们每天都会接触到各种各样的音视频和图片文件。无论是拍摄的照片、录制的视频&#xff0c;还是下载的音频资源&#xff0c;它们往往以不同的格式存在——有些适合分享&#xff0c;有些适合编辑&#xff0c;而有些则仅限特定设备或平台使用。格式不统一的问题&#xff0c;正在…

Qt—用SQLite实现简单的注册登录界面

1.实现目标 本次实现通过SQLite制作一个简易的登录窗口&#xff0c;当点击注册按钮时&#xff0c;登录窗口会消失&#xff0c;会出现一个新的注册界面&#xff1b;完成注册或退出注册时&#xff0c;注册窗口会消失&#xff0c;重新出现登录窗口。注册过的用户信息会出现在SQLi…

MySQL命令行导出数据(docker版本)

MySQL命令行导出数据(docker版本) 1、登录数据库 $mysql -h 10.1.1.143 -u root -p 2、用命令行从MySQL导出数据(无标题) #查看导出时可以存储的路径 mysql> SHOW VARIABLES LIKE secure_file_priv; ----------------------------------------- | Variable_name | Valu…

Python 3.13.3 安装教程

原文来自&#xff1a;Python 3.13.3 安装教程 | w3cschool笔记 &#xff08;请勿标记为付费&#xff01;&#xff01;&#xff01;&#xff09; Python 是一种广泛使用的编程语言&#xff0c;广泛应用于 Web 开发、科学计算、数据处理、人工智能等领域。Python 3.13.3 作为 P…

现代化水库运行管理矩阵平台如何建设?

政策背景 2023年8月24日&#xff0c;水利部发布的水利部关于加快构建现代化水库运行管理矩阵的指导意见中指出&#xff0c;在全面推进水库工程标准化管理的基础上&#xff0c;强化数字赋能&#xff0c;加快构建以推进全覆盖、全要素、全天候、全周期“四全”管理&#xff0c;完…

2025程序设计天梯赛补题报告

2025程序设计天梯赛补题报告 仅包含L1 L2 L1-6 这不是字符串题 题目描述 因为每年天梯赛字符串题的解答率都不尽如人意&#xff0c;因此出题组从几年前开始决定&#xff1a;每年的天梯赛的 15 分一定会有一道字符串题&#xff0c;另外一道则一定不是字符串题。 小特现在有…

SpringBoot3.4.5下Lombok的@Data注解不生效,解决方案

程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java、嵌入式、鸿蒙、人工智能等,专注于程序员成长那点儿事,希望在成长的路上有你相伴&#xff01;君志所向,一往无前&#xff01; 1.问题 最近的项目是Python、Java、鸿蒙的来回交叉&#xff0c;再做的一个Java的项目…

如何在 Windows 上安装类似 Synaptic 的 Chocolatey GUI 包管理器

如果你正在寻找类似 Linux 中 APT 的 Windows 包管理器&#xff0c;那么没有什么比 Chocolatey 更好的了。它是 Windows 10 上可用的最佳包管理器之一&#xff0c;可以通过命令行界面安装所有流行的软件和工具。然而&#xff0c;这并不意味着如果你不喜欢命令行&#xff0c;你就…

Guided Filtering相关记录

一、背景介绍 以前折腾保边滤波时候&#xff0c;刷了一些Guided Filtering相关资料。这里主要是对它们做个算法效果复现和资料简单整理。 二、Guided Filtering 1、基本原理 原版Guided Filtering的提出&#xff0c;主要是为了改善双边滤波做保边平滑滤波器时候的梯度翻转伪影…

智能AI构建工地安全网:跌倒、抽搐、区域入侵多场景覆盖

智能AI在工地安全中的应用&#xff1a;从监测到救援的全流程实践 一、背景&#xff1a;高温作业下的工地安全挑战 随着夏季高温持续&#xff0c;工地户外作业环境面临严峻考验。工人因高温疲劳、脱水或突发疾病引发的行为异常&#xff08;如晕厥、抽搐、跌倒&#xff09;频发…

Spring+LangChain4j小智医疗项目

这里写目录标题 LangChain4j入门配置测试Ollama阿里云百炼平台AIService聊天记忆隔离聊天 MongoDB持久化存储Prompt*创建小智医疗助手Function Calling&#xff08;Tools&#xff09;实战小智医疗智能体 RAGToken分词器向量存储流式输出总结 LangChain4j入门 LangChain4j 是一…

解决“VMware另一个程序已锁定文件的一部分,进程无法访问“

问题描述 打开VMware里的虚拟机时&#xff0c;弹出"另一个程序已锁定文件的一部分&#xff0c;进程无法访问"如图所示&#xff1a; 这是VM虚拟机的保护机制。虚拟机运行时&#xff0c;为防止数据被篡改&#xff0c;会将所运行的文件保护起来。当虚拟机崩溃或者强制…