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

40次阅读

共计 2725 个字符,预计需要花费 7 分钟才能阅读完成。

应用 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,关注后即可获取最新文章推送

看完如果感觉有帮忙,欢送 点赞、珍藏、关注

正文完
 0