侧边栏壁纸
博主头像
小周的知识站 博主等级

行动起来,活在当下

  • 累计撰写 80 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

Git分支管理

Administrator
2024-06-20 / 0 评论 / 0 点赞 / 7 阅读 / 0 字

Git分支管理

1 Git分支概述

使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。

如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。

通过分支,您可以同时拥有不同版本的存储库。您可以在存储库中创建 master 以外的其他分支。

您可以使用分支一次拥有项目的不同版本。 当您想要在不更改主要代码源的情况下向项目添加新功能时,这非常有用。

在合并主分支之前,在不同分支上完成的工作不会显示在主分支上,您可以使用分支进行试验和编辑,然后再将其提交到 master。

2 Git分支命令

Git分支常用管理命令:

命令

功能

git branch

查看分支

git branch 分支名称

创建分支

git checkout 分支名称

切换分支

git branch -d 分支名称

删除分支

a:查看分支

[root@git data]# git branch

b:创建分支

[root@git data]# git branch testing

[root@git data]# git branch

* master #表示当前所在的分支

testing

c:切换分支

[root@git data]# git checkout testing

[root@git data]# git branch

master

* testing #当前已切换到testing分支

提示:此时tesgin分支已经复制了一套master分支所有内容(与master分支环境一致),此时开发人员可以在testing分支进行代码提交并测试,而并不会影响master主干代码。

d:testind分支创建项目文件

[root@git data]# touch t1.txt

[root@git data]# echo hello >> t1.txt

e:提交至仓库

[root@git data]# git status

[root@git data]# git add t1.txt

[root@git data]# git commit -m '增加t1.txt'

[root@git data]# git log --oneline

911b02f 增加t1.txt

提示:此时在testing分支所有的操作都不会影响master分支。


f:切换至master分支查看是否发生变化

[root@git data]# git checkout master

切换到分支 'master'

[root@git data]# git log --oneline --decorate

07eae2e (HEAD, master) 删除c.txt #master分支并没有受到影响

接下来可以将testing分支的代码合并至master分支。

3 Gir分支合并

使用git merge命令可以将指定分支的文件合并到当前分支。

a:合共testing分支(提示:在master分支执行合并操作)

[root@git data]# git merge testing

Merge branch 'test'

[root@git data]# git log --oneline

911b02f 增加t1.txt

提示:此时已经将testind分支文件合并至master分支,至时testing分支可以删除。

b:删除testing分支

[root@git data]# git branch -d testing

提示:如果你已经在testing分支,请先切换至其他分支,不允许在当前分支进行删除。

4 Git冲突合并

当您执行代码合并时,您可能会遇到合并冲突的情况。 这意味着您的两个提交修改了同一个文件中的同一行,而 Git 不知道要应用哪个更改。

a:创建testing1、testing2分支

[root@git data]# git branch testing1

[root@git data]# git branch testing2

[root@git data]# git branch

* master

testing1

testing2

b:切换至testing1分支向t1.txt文件写入内容并提交至仓库

[root@git data]# git checkout testing1

[root@git data]# echo "testing1 branch" >> t1.txt

#将修改提交到仓库

[root@git data]# git add t1.txt

[root@git data]# git commit -m 'add testing1 branch'

c:切换到testing2分支向t1.txt文件写入内容并提交至仓库

[root@git data]# git checkout testing2

[root@git data]# echo "testing2 branch" >> t1.txt

#将修改提交到仓库

[root@git data]# git add t1.txt

[root@git data]# git commit -m 'add testing2 branch'

提示:此时testing1与testing2分支下的t1.txt文件内容不一致。


d:切换到master分支进行合并

[root@git data]# git checkout master

[root@git data]# git marge testing1

[root@git data]# git merge testing2

自动合并 t1.txt

冲突(内容):合并冲突于 t1.txt

自动合并失败,修正冲突然后提交修正的结果。

e:用vim解决冲突后手动提交至仓库

[root@git data]# vim t1.txt

hello

<<<<<<< HEAD #删除符号行

testing1 branch

======= #删除符号行

testing2 branch

>>>>>>> testing2 #删除符号行

f:重新提交至仓库

[root@git data]# git add t1.txt

root@git data]# git commit -m 'merge testing1 testing2'

g:查看结果

[root@git data]# git log --oneline --decorate

0428c8e (HEAD, master) merge testing1 testing2

0
Git
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区