Qt6教程之三(19) Git版本管理工具

本文介绍了Git作为版本控制系统的起源、优点和基本原理,详细阐述了Git的工作区、暂存区和本地库的概念。文中还列出了常见的Git命令,包括初始化、克隆、提交、分支管理和合并等,并提供了安装Git的步骤。此外,文章还讨论了在Windows上安装Git,以及如何在QtCreator中使用Git进行本地和远程仓库的版本管理。最后,提到了解决冲突和使用SSH密钥与远程仓库配合的步骤。
摘要由CSDN通过智能技术生成

一 Git简介

Git的由来

是一个开源的分布式版本控制系统 ,用于有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。

GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。

Git的优点

  1. 设计简单,完全免费,并且开源;
  2. 占用空间小,性能强悍,软件运行速度快;
  3. 分布式架构,多人可并行进行开发;
  4. 使用简单,易于学习,使用群体庞大;
  5. 具备高效管理超大规模的项目能力; 

Git的设计原理

git整体分为三个部分:工作区、暂存区和本地库。

工作区间: 即我们创建的工程文件, 在编辑器可直观显示

缓存区: 只能通过git GUI或git shell 窗口显示,提交代码、解决冲突的中转站

本地仓库: 只能在git shell 窗口显示,连接本地代码跟远程代码的枢纽,不能联网时本地代码可先提交至该处。

如果有远程仓库,其流程如下:

关于团队协作开发,流程如下:

 

跨公司或跨团队协作开发,流程如下:

 

Git常用命令

git init // 初始化 在工作路径上创建主分支

git clone 地址 // 克隆远程仓库

git clone -b 分支名 地址 // 克隆分支的代码到本地

git status // 查看状态

git add 文件名 // 将某个文件存入暂存区

git add b c //把b和c存入暂存区

git add . // 将所有文件提交到暂存区

git add -p 文件名 // 一个文件分多次提交

git stash -u -k // 提交部分文件内容 到仓库

git stash pop 把之前放入堆栈的c拿出来 继续下一波操作

git commit -m "提交的备注信息"  // 提交到仓库

git commit -am "备注信息" // 将内容放至仓库 也可用git commit -a -m "备注信息"

git branch 分支名 // 新建分支

git branch // 查看当前所有分支

git checkout 分支名 // 检出分支

git checkout -b 分支名 // 创建并切换分支

git checkout commitId 文件名  // 还原这个文件到对应的commitId的版本

git branch -v // 查看分支以及提交hash值和commit信息

git merge 分支名 // 把该分支的内容合并到现有分支上

git branch -d 分支名 // 删除分支

git branch -D 分支名 // 强制删除 若没有其他分支合并就删除 d会提示 D不会

git branch -m 旧分支名 新分支名 // 修改分支名

git branch -M 旧分支名 新分支名 // 修改分支名 M强制修改

git branch -r // 列出远程分支(远程所有分支名)

git branch -a // 查看远程分支(列出远程分支以及本地分支名)

git fetch // 更新remote索引

git push -u origin 分支名 // 将本地分支推送到origin主机,

关于Git的常用命令,这里推荐一篇博客,链接如下:

https://blog.csdn.net/WEB_CSDN_SHARE/article/details/79243308?ops_request_misc=&request_id=&biz_id=102&utm_term=Git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-79243308.142^v80^wechat_v2,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187

二 Git下载安装

Windows系统下载地址:https://gitforwindows.org/

下载完后,双击安装包开始安装,博主这里下载的最新版本的2.40 ,

开始安装,一路下一步,注意选择安装路径,

 

组件全选,

 

接下来的所有过程,全部保持默认,一直下一步,直至安装完成,最后自动启动git ,

如下:

 

如果有兴趣想了解安装过程中的每一项是什么含义,这里推荐一篇博客,

指令大全

 

三 使用命令操作Git

首先打开终端工具Git Bash,

 

配置仓库,配置完成后,本机默认使用该配置。

git config --global user.name "wsb"   //配置名称

git config --global user.email "1234@qq.com" //配置邮箱

创建版本库

首先在本地新建一个空白文件夹 depositorys,然后进入该文件夹,使用鼠标右键的方式启用Git Bash,

 

启动之后输入pwd查看当前目录,

 

输入git init命令把当前目录变成git可以管理的仓库可见系统默认创建了main分支,同时depositorys目录下会多一个.git的隐藏文件,

 

 

创建一个文本文件,并在文本文件里面写一些内容,

 把test.txt文件提交到git中,

再次修改test.txt文件,然后执行add与commit,如下:

 

一次commit可以提交多个文件,并且一次commit就会生成一个快照,

查看历史使用 git log

版本回退 git reset --hard HEAD^  ,这里是回退到上一个版本,在上上一个版本是HEAD^^ ,也可以直接用数字HEAD~2 ,当然若有10版本则写作HEAD~10 。

版本回退后,使用git log查看,发现版本已回退到上一个版本。

回退到指定版本

首先查询所有版本号: git reflog,然后在回退到需要回退的版本: git reset --hard 版本号,

 

查看当前状态: git status,

 

新增一个文件newFile.txt,并添加到工作区,然后查看状态,显示为unstage,

 

 提交文件newFile.txt,并再次查看状态,此时发现工作区是空的,没有待提交项。

 

修改test.txt文件内容,接着查看其内容变更,

 

 

 添加文件,接着再次修改,再次添加,最后提交。

 

此时在把test.txt的内容新增一行,如下:

 

不执行add,直接执行commit,

查看状态发现我们有一次修改位提交,

 

所以,在修改文件后,一定要遵循先add在commit的顺序,并且只要是文件做了一次修改,那么就必须执行一次add, 否则执行了commit后,git只会提交已经被add后的文件,最后的结果就是出现上面的未提交提示。

所以,我们需要在执行一次add和commit后,在查看状态就不存在未提交的提示啦。

查看工作区内容与版本库最新版本的区别:git diff HEAD -- test.txt

 

撤销修改

 

删除工作区文件

 

 

恢复文件

 

创建分支: 首先创建分支dev,然后切换至分支dev

 

也可以使用创建并切换分支指令,git checkout -b dev2 ,可以看到执行该命令后,分支已经切换至dev2,

 

查看分支git branch,当前使用的分支前面有一个✳号,可见目前的分支是dev2

 

新建一个文本文件dev2,txt, 然后在dev2分支上面提交,

 

切换到主分支main,然后把dev2的内容合并到主分支

 

把dev2的内容合并到主分支

 

删除dev2分支,接着查看剩余分支,发现dev2分支成功删除。

 

解决冲突: 当其他的分支和主分支对同一个文件同一个位置进行修改,当执行分支合并后会产生冲突,此时需要根据实际情况进行修改后,没有冲突才能提交。

在主分支上面修改dev2.txt第一行内容为 hello world 1234567890;

执行add和commit, 

切换至dev分支,

 

修改dev2.txt第一行内容为 hello world 123;

然后在dev分支上面add和commit,

接着切回主分支main

 

合并dev分支到main,提示合并失败

 

此时,使用git status查看冲突的文件,可发现冲突的文件叫dev2.txt

 

我们使用cat dev2.txt 查看一下该文件的内容,看看冲突在哪里?

 

经查看后发现,冲突在于不同的分支修改了同一行的内容,解决办法一般有两个:

一是以main或dev分支为准的修改,然后删除另外一个分支的修改,各自提交和在合并;

二是合并两个分支的修改后在分别提交,最后在合并;

这里演示一下第二种方式,

先修改内容如下,

在add和commit,最后合并成功,

 

接着删除dev分支,

 

查看分支合并情况,

用git log --graph --pretty=oneline --abbrev-commit可以看到分支的合并情况,包括分支合并图(--graph)、一行显示(--pretty=oneline)、提交校验码缩略(--abbrev-commit)显示:

我们先修改一下dev2.txt的内容,然后执行add,此时若有其他任务,则需要

保存工作现场 git stash,便于去做其他任务,

查看stash,

 

恢复工作现场

 

接着把文件提交,之后把stash删除, 

 

查看远程库详细信息,

 

将本地分支推送到远程分支origin

 

抓取分支

 

把本地位push的分叉提交历史整理为直线,

 

创建一个hello 标签

 

查看标签

 

删除标签

 

推送所有未推送的标签到远程库,

 

推送指定标签,如hello标签

 

如果标签已经推送到远程,要先从本地删除,再从远程删除

 

四 在集成环境Qt Creator中使用Git

本地仓库使用介绍

首先新建一个项目,叫test_git ,然后在Qt Creator中配置git,

 

点击确定后,在工具栏菜单选择git-->创建仓库,

 

仓库路径选择当前项目文件夹,点击确定。

 

之后,我们就可以把当前项目文件提交到仓库中了,

 

 

点击提交后,我们来写几行代码,

 

和已提交的代码对比一下不同:

 

蓝色部分就是不同的部分啦,是不是非常的方便和炫酷呢,

 

再次提交,

 

 

使用起来非常方便,再也不用敲命令啦。

远程仓库介绍

博主这里使用的是GitCode,  官方地址是 https://gitcode.net/dashboard/projects/home,

要使用远程仓库,首先需要使用git生成密钥,如下:

打开git控制台,输入 ssh-keygen -t rsa -C"你自己的邮箱" 来生成公钥,

公钥文件路径为: C:\Users\用户名\.ssh\id_rsa.pub

打开公钥文件,复制其内容到对应的远程仓库密钥位置粘贴即可。

配置完成后,在云端新建一个项目,

 

填入相应信息后,点击新建项目, 

完成项目新建后,点击克隆,点击 通过SSH Clone项目下的复制链接,

 

这个链接就是我们的远程仓库地址,接着在Qt开发环境中配置仓库地址,

 

点击添加,名称可以顺便设置,URL处粘贴刚才复制的仓库地址,最后点击确认。

 

之后点击关闭,至此云端仓库地址配置完成。

如果我们要把本地代码文件全部传到云端的话,需要现在本地建立仓库,而且在提交到云端之前,本地必须是全部提交的,也就是说本地未提交部分不会传到云端的。

创建仓库:

执行提交:

 

Push到云端:

 

 

 此时,刷新云端仓库,即可看到所有文件啦!

接下来,我们增加一些代码,然后现在本地提交后,在push到云端,最后在云端查看代码:

 

本地提交:

 

 

Push到云端:

 

 

云端查看代码:

 

至此,在Qt Creator中演示使用git提交代码到云端仓库便结束了,大家多多练习吧。

完整代码克隆地址:

git@gitcode.net:XiaoWang_csdn/test_git.git

下一篇博客:

Qt6教程之三(20) 软件发布流程_折腾猿王申兵的博客-CSDN博客

上一篇博客:

Qt6教程之三(18) 使用SVN进行版本管理_折腾猿王申兵的博客-CSDN博客

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
studio是一个强大的版本管理工具,可以帮助团队成员有效地协作开发项目。git是studio常用的版本管理工具之一,可以帮助团队协调开发过程,追踪版本变化,并方便地进行代码的合并和回滚。 下面是使用git进行版本管理的图文教程: 1. 安装Git和配置环境:首先,需要下载并安装Git工具。在安装完成后,打开终端(或命令行界面)并运行以下命令来配置Git: `git config --global user.name "你的姓名"` `git config --global user.email "你的邮箱"` 2. 创建本地代码仓库:可以在Studio中创建一个新的项目,然后在项目根目录下右键点击选择“Git” -> “Initialize Repository”,这将把项目变成一个Git仓库。 3. 将代码添加到仓库:在Studio中,在代码编辑区右键点击选择“Git” -> “Add”以将所有文件添加到仓库中。 4. 提交代码:在Studio中,右键点击代码编辑区选择“Git” -> “Commit”以提交已添加到仓库的代码。在弹出的对话框中,输入提交的注释,并点击提交按钮。 5. 查看提交历史:在Studio中,右键点击代码编辑区选择“Git” -> “Show History”以查看提交的历史记录。可以看到每个提交的注释、作者、时间等信息。 6. 合并代码:团队成员可以在各自的本地仓库中进行代码开发。当一个人完成了某个功能的开发时,可以通过合并代码的方式将其添加到主仓库中。在Studio中,右键点击代码编辑区选择“Git” -> “Merge”,然后选择要合并的代码修改。 7. 回滚代码:如果遇到了一些问题,可以通过回滚代码来恢复到之前的某个版本。在Studio中,右键点击代码编辑区选择“Git” -> “Revert Commit”,然后选择要回滚的提交。 以上是使用git进行版本管理的基本操作,团队成员可以根据需要进行相应的操作。git实际上还有很多高级功能,如分支管理、标签、远程仓库等,更多的内容可以在git的官方文档和其他教程中学习到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值