首页 > 其他分享 >Git 分支管理:优化版本控制与应急处理的关键策略

Git 分支管理:优化版本控制与应急处理的关键策略

时间:2024-03-01 21:12:43浏览次数:19  
标签:文件 Git 版本控制 git world 应急 hello 分支

使用 Git 分支:轻松管理不同版本和应对紧急情况的最佳实践

使用 Git 分支

在 Git 中,分支是主仓库的新/独立版本。

假设你有一个大型项目,需要对其进行设计更新。

没有使用 Git 时:

  • 复制所有相关文件以避免影响实时版本
  • 开始进行设计工作,并发现代码依赖于其他文件中的代码,这些文件也需要更改!
  • 复制相关文件,确保每个文件依赖项引用正确的文件名
  • 紧急情况!项目的其他地方存在无关的错误,需要尽快修复!
  • 保存所有文件,记录你正在工作的副本的名称
  • 处理无关的错误并更新代码以修复它
  • 返回到设计工作,完成工作
  • 复制代码或重命名文件,以使更新后的设计出现在实时版本中

(两周后,你意识到未修复无关的错误,因为在修复之前你复制了文件)

使用 Git 时:

  • 使用名为 "new-design" 的新分支,直接编辑代码,而不影响主分支
  • 紧急情况!项目的其他地方存在无关的错误,需要尽快修复!
  • 从主项目创建名为 "small-error-fix" 的新分支
  • 修复无关的错误并将 "small-error-fix" 分支与主分支合并
  • 返回到 "new-design" 分支,完成工作
  • 合并 "new-design" 分支与主分支(提醒你正在缺少的小错误修复)

分支允许你在项目的不同部分上工作,而不影响主分支。

当工作完成后,可以将分支与主项目合并。

你甚至可以在不同分支之间切换,同时在不同项目上工作,而彼此不会互相干扰。

在 Git 中,分支非常轻量且快速!

创建新 Git 分支

让我们向我们的 index.html 页面添加一些新功能。

我们在本地仓库中工作,不希望干扰或可能破坏主项目。

所以我们创建一个新分支:

git branch hello-world-images

现在我们创建了一个名为 "hello-world-images" 的新分支。

让我们确认我们已经创建了一个新分支:

git branch
  hello-world-images
* master

我们可以看到新分支的名称为 "hello-world-images",但在 master 旁边的 * 指定我们当前在该分支上。

checkout 是用于检出分支的命令,将我们从当前分支移动到命令末尾指定的分支:

git checkout hello-world-images

现在我们已将当前工作区从 master 分支移动到新分支。

打开你最喜欢的编辑器并进行一些更改。

在此示例中,我们在工作目录中添加了一个图像(img_hello_world.jpg)和 index.html 文件的一行代码:

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space"
style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>A new line in our file!</p>

</body>
</html>

我们对一个文件进行了更改,并在工作目录中添加了一个新文件(与主分支相同的目录)。

现在检查当前分支的状态:

git status

在 hello-world-images 分支上,有文件更改,但该文件未准备好提交,img_hello_world.jpg 不在跟踪文件中。

因此,我们需要将这两个文件都添加到该分支的暂存区中:

git add --all

使用 --all 而不是单独的文件名将所有已更改的文件(新的、修改的和已删除的)放入暂存区。

检查分支的状态:

git status

在 hello-world-images 分支上,有文件更改,但未准备好提交。所以我们将这些更改提交到该分支:

git commit -m "Added image to Hello World"

现在我们有一个不同于 master 分支的新分支。

注意:在 checkout 命令上使用 -b 选项会创建一个新分支,并移动到该分支,如果该分支不存在的话。

切换分支

现在让我们看看工作在不同分支上有多么快速和容易,以及它是如何有效地工作的。

我们当前位于 hello-world-images 分支。我们向此分支添加了一个图像,所以让我们列出当前目录中的文件:

ls

我们可以看到新文件 img_hello_world.jpg,如果打开 html 文件,可以看到代码已经发生了变化。一切都按计划进行。

现在,让我们看看当我们切换到 master 分支时会发生什么

git checkout master

不再存在 img_hello_world.jpg!如果打开 html 文件,可以看到代码已经恢复到修改之前的状态。

看看工作在不同分支上有多么容易?以及它是如何允许你在不同的任务上工作的?

###

紧急分支

现在假设我们还没有完成 hello-world-images,但我们需要在 master 上修复一个错误。

我不想直接干预 master,也不想干扰 hello-world-images,因为它还没有完成。

所以我们创建一个新分支来处理紧急情况:

git checkout -b emergency-fix

现在我们已经从 master 创建了一个新分支,并切换到它。我们可以安全地修复错误,而不会干扰其他分支。

让我们修复我们想象中的错误:

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<p>This is the first file in my new Git Repo.</p>
<p>This line is here to show how merging works.</p>

</body>
</html>

我们在该文件中进行了更改,现在需要将这些更改传输到 master 分支。

检查分支的状态:

git status

在 emergency-fix 分支上,有文件更改,但未准备好提交,所以我们需要将该文件暂存,然后提交:

git add index.html
git commit -m "updated index.html with emergency fix"

现在,我们已经为 master 分支准备好一个修复。需要合并这两个分支。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

标签:文件,Git,版本控制,git,world,应急,hello,分支
From: https://www.cnblogs.com/xiaowange/p/18047951

相关文章

  • Spectrum Digitizer NETBOX|LXI数据采集|瞬态记录仪
    产品简介:♦DigitizerNETBOX配有4/8通道♦512MSamples(1GB)采集内存♦或16通道2×512MSamples采集内存Ethernet/LXI接口,16位数字化仪,单端/真正差分输入更多信息请加weixin-pt890111获取数字化仪硬件在DigitizerNETBOX内部安装已经被成功证明了的Spectrum数字化仪的硬件部......
  • 10个技巧,3分钟教会你github高效寻找开源项目
    大家好,我是知微!作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢?常用的开源网站有:github和giteegithub是全球最大的开源社区,今天就以github为例,演示一下github界面一般来说,优秀的项目,维护会比较频繁,提交数也就会多一点。当......
  • pycharm环境下添加.gitignore后发现未生效问题处理
    pycharm环境下添加.gitignore后,提交代码到gitlab发现项目文件都提交了,特别是venv环境也在里面,分析原因可能是.gitignore是在创建git后添加的,所以没有生效,处理办法如下:首先清理缓存,然后重新添加提交gitrm--cached.#也可以指定文件清理缓存gitadd.gitcommit-m'更新过......
  • GitLab Runner 添加 极狐GitLab 域名 host
    本文作者徐晓伟自定义GitLab域名解析查看极狐GitLabrunner日志查看极狐GitLabRunnerPod名称[root@anolis-7-9~]#kubectl-ngitlab-testgetpod|grepgitlab-runnermy-gitlab-gitlab-runner-6fb4bf7468-nmnkp0/1Running29(62sago)......
  • Docker部署Gitea,以及自定义 Gitea 页面
    首先要先在你的Linux系统上成功安装Docker和DockerCompose。开始配置和部署Gitea:创建git用户。sudouseradd-m-s/bin/bash-U-u1000git配置docker-compose.yml,我这里使用了80端口和MySQL8数据库。version:"3"networks:gitea:external:falseservice......
  • git拉取多个仓库代码配置多个密钥
    当你需要使用多个仓库地址并且使用不同的ssh密钥时就会遇到配置问题。先看配置文件~/.ssh/configHostgithub.com-just-beginerHostNamegithub.comUseryiconIdentityFile~/.ssh/github_rsaHostgitee.com-justshuangHostNamegitee.com......
  • 写少一点/ARCHITECTURE/JavaScript类型转换/Logitech Options一直转圈
    《写少一点》https://www.yuque.com/beilo/simpread/1709260496568《ARCHITECTURE文件》https://www.yuque.com/beilo/simpread/1709260486335例子https://github.com/rust-lang/rust-analyzer/blob/d7c99931d05e3723d878bea5dc26766791fa4e69/docs/dev/architecture.md《Java......
  • 技术文档 | 使用 OpenSCA 批量扫描 Gitlab 仓库,盘点资产安心过节
    按照下述教程快速批量扫描您的仓库,一旦新的攻击或0Day出现,通过资产清单即可快速定位漏洞及影响范围、有效缩短响应时间。安装opensca-cli方法一:一键安装-Windows(需要PowerShell)iex"&{$(irmhttps://raw.githubusercontent.com/XmirrorSecurity/OpenSCA-cli/master/script......
  • linux 使用docker 管理应用(gitlab,)
    配置gitlab  10080端口貌似被禁用的具体细节不清楚但是配置访问不了端口从2万开始磁盘空间不足无法正常启动 需要配置足够的磁盘空间配置环境变量 GITLAB_HOME下载并启动容器sudodockerrun--detach--hostnamegitlab.example.com--publish10443:443--publ......
  • 配置Gitlab支持SMTP发送邮件
    不配置SMTP都无法工作了目前的版本Gitlab16.9.0,管理员在创建用户的时候,管理员无法给用户指定初始密码。初始密码只能以邮件的形式,发送到用户的邮箱。因此有了此篇博文,为我们的Gitlab服务器做好正确的SMTP配置。找到Gitlab的config文件夹如果您的Gitlab,是根据我们的文章安装......