DevOps工程技术价值流:Git版本管理

        随着软件开发复杂度的不断提升和交付速度的不断加快,DevOps(开发运维一体化)作为一种融合了开发与运维的新型工程实践方法,正在逐渐成为业界的主流趋势。而在这一过程中,版本管理作为软件开发的基础支撑,其重要性不言而喻。

        在DevOps工程流程中,Git版本管理作为一款强大且灵活的工具,发挥着举足轻重的作用。它不仅为开发团队提供了高效的代码管理和协作机制,还深度融入了持续集成、持续部署(CI/CD)的各个环节。通过Git,开发者可以轻松管理代码分支、解决合并冲突、追溯版本历史以及控制访问权限,进而大幅提升开发效率与代码质量。本文将详细解析Git在DevOps工程流程中的应用价值,并探讨其如何助力团队实现更高效、更可靠的软件开发与运维管理

一、概述

Git作为当前最先进、最主流的分布式版本控制系统,以其免费、开源的特性,成为了程序员的必备技能。其核心能力在于版本控制,特别是面向代码文件的版本控制,能够记录并管理代码的任何修改历史,允许恢复到以前的任意时刻状态。Git支持跨区域多人协作编辑,是团队项目开发的必备基础。

Git的优势包括:

  • 本地有完整的仓库,无网络也能正常工作。

  • 遇到问题回退版本容易,不影响其他人。

  • 轻量的分支开销鼓励大量使用,适合敏捷迭代。

  • 开源免费,使用广泛。

  • 强大的文档(代码)历史版本管理,支持回滚、对比。

  • 分布式多人协作的代码协同开发。

  • 简单易用的分支管理。

二、Git 安装及配置

1、git安装

官网下载Git ,前往Git官网下载并安装,按照提示完成安装过程。

2、git配置文件

Git有三个主要的配置文件,优先级从低到高为:系统全局配置、用户全局配置、仓库/项目配置。

  • 系统全局配置(--system):适用于系统所有用户和所有仓库的配置信息,存放在Git安装目录下。

  • 用户全局配置(--global):当前系统用户的全局配置,存放在用户目录下,存放用户目录 C:\Users\[系统用户名]\.gitconfig。

  • 仓库 / 项目配置(--local):仓库(项目)的特定配置,存放在项目目录下 .git/config。

3、初始化用户

  • 安装Git后,首先需要配置用户信息,包括用户名和邮箱地址。这些信息将在每次提交文件时带上,以便查看历史记录时知道是谁提交的。

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
  • --globalconfig 的参数,表示用户全局配置。如果要给特定仓库配置用户信息,则用参数 --local 配置即可,或直接在仓库配置文件 .git/config 里修改。

3、配置.gitignore

在工作区根目录下创建 .gitignore 文件,文件中配置不需要进行版本管理的文件、文件夹。.gitignore 文件本身是被纳入版本管理的,可以共享。有如下规则:

  • # 符号开头为注释。

  • 可以使用 Linux 通配符:

* 代表任意多个字符;

? 代表一个字符;

[abc] 代表可选字符范围;

{string1,string2,…} 代表可选的字符串等。

  • 感叹号 ! 开头:表示例外规则,将不被忽略。

  • 路径分隔符 /f 开头:,表示要忽略根目录下的文件 f。

  • 路径分隔符 f/ 结尾:,表示要忽略文件夹 f 下面的所有文件。

#为注释
*.txt #忽略所有“.txt”结尾的文件
!lib.txt #lib.txt除外
/temp #仅忽略项目根目录下的temp文件,不包括其它目录下的temp,如不包括“src/temp”
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

三、常用的 Git GUI

如果不想使用命令行工具,可以安装Git的GUI工具,如SourceTree、TortoiseGit、GitHub Desktop、GitKraken等。这些工具使得Git的使用更加简单、舒适,不过仍需了解Git的基础知识,推荐使用SourceTree。

  • SourceTree:老牌的Git GUI管理工具,适用于Windows和Mac系统,内置中文版,功能强大且使用简单,支持Git Flow。

  • TortoiseGit:SVN时代就很流行的代码管理GUI利器,只有Windows版本,支持中文,开源免费,与文件管理器集成良好,内置冲突对比解决工具。

  • GitHub Desktop:GitHub官方出品的Git管理工具。

  • GitKraken:跨平台的GUI Git客户端,有免费版、专业版和企业版,功能丰富。

1.SourceTree

SourceTree 的官网下载安装包,支持 Window、Mac 系统,按照提示完成安装。

  • SourceTree 支持管理多个仓库,通过 + 按钮,可选择多种方式添加仓库。

  • 然后就是可视化的仓库管理了,不用记住繁琐的指令(参数)了,可视化操作。

四、git分支

分支是从主线分离出去的“副本”,可独立发展、编辑、提交,也可以和其他分支合并。分支是Git的核心功能之一,创建、切换、删除都非常快且轻量。

  • 分支切换:使用git checkout [branch]切换分支,HEAD指向当前活动的分支。如果切换时有未提交的修改,且修改与待切换的分支没有冲突,则切换成功且未提交修改会一起带过去;如果有冲突,则会报错,提示先提交或隐藏。

  • 合并分支:使用git merge [branch]将分支合并到当前分支。合并过程可能有快速合并(Fast forward)、普通合并(有冲突时需要人工处理)等情况。

  • 变基(Rebase):另一种合并分支的方法,将分支上的修改生成补丁,然后在目标分支上应用补丁,产生新的提交。变基后的提交历史更简洁,但会改变提交历史。

git高效分支管理规范:https://blog.youkuaiyun.com/heijunwei/article/details/143820569

五、标签管理

标签(Tags)是对某个分支某个特定时间点的状态的固定“指针”引用,一经创建不可移动。常用于标记版本,发布时一般会打一个版本标签。

  • 使用git tag [tagname]给当前提交打标签。

  • 使用git tag [tagname] [commit]给指定提交打标签。

  • 使用git show-ref查看所有标签。

  • 使用git tag -d [tagname]删除标签。

六、撤销变更

Git提供了多种撤销变更的方法,包括撤销未提交的修改、撤销已提交但未push的提交、撤销已push的提交等。

  • 撤销未提交的修改:使用git checkout [file]撤销工作区的修改,使用git reset HEAD [file]撤销暂存区的修改。

  • 撤销已提交但未push的提交:使用git reset --hard [commit]回退到指定提交,但这种方法不安全,会改变提交历史。更安全的方法是使用git revert [commit]撤销某一次提交,创建一个新的提交来撤销之前的提交。

  • 撤销已push的提交:先本地撤销(使用reset或revert),然后强制推送(git push origin -f),但这种方法非常危险,可能导致其他人丢失工作,应慎用。

七、IDEA集成Git

1、设置git.exe

2、本地库的初始化操作:

3、本地库初始化完成了,生成了.git目录:

4、添加到暂存区,再提交到本地库操作; add +commit:

5、代码推向远程库

6、使用IDEA克隆远程库到本地

克隆到本地后,这个目录既变成了一个本地仓库,又变成了工作空间。

7、解决冲突

在你push以后,有冲突的时候提示合并操作:

8、如何避免冲突

【1】团队开发的时候避免在一个文件中改代码

【2】在修改一个文件前,在push之前,先pull操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值