git基础使用--4---git分支和使用

git基础使用--4---git分支和使用

1. 按顺序看

-git基础使用--1--版本控制的基本概念

-git基础使用--2--gti的基本概念

-git基础使用--3---安装和基本使用

2. 什么是分支

  • 简单理解就是副本
  • 在版本控制过程中,为了推进多个任务,我们可以为每个任务创建一个单独的分支,分支可以脱离主支进行开发,开发完之后再进行合并,这样就可以实现并行开发。
  • 举个例子,我们在希望在1.1版本的基础上,增加点赞,收藏,分享和评论四个功能形成1.2版本。那我们就把1.1创建四个分支,分别给甲乙丙丁四个人,分别开发点赞,收藏,分享和评论四个功能。四个人开发完之后,把代码一合并,就形成了1.2版本。
  • 这样的好处是,如果某个分支的功能开发失败或者有bug直接删除那个分支就行,其他分支不受影响

3. 分支的基本操作

命令 操作含义
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支名合并到当前分支上

4. 分支的基本操作

4.1 查看分支

  • git branch -v

4.2 创建分支

  • git branch 分支名
js 复制代码
git branch login-part
  • 创建完之后我们再查看分支

4.3 切换分支

  • git checkout 分支名
  • 我们目前在master分支上,现在切换到login-part分支上
js 复制代码
git checkout login-part
  • 已经切换到login-part分支上了

  • 我们在login-part分支上,对test.txt做一些修改

  • 然后我们添加到暂缓区域,并且提交到本地库

js 复制代码
git add test.txt
git commit -m 'login-part first commit' test.txt
  • 这个时候login-part分支中的test.txt已经修改,但是master上还没有修改,我们需要把login-part分支上的修改合并到master上
  • 我们先切换到master分支上
js 复制代码
git checkout master
  • 我们查看test.txt,发现确实没有刚才修改的内容
  • 闲杂合并
js 复制代码
git merge login-part
  • 再打开test.txt,发现合并了

4.4 合并冲突

  • 啥叫冲突,为啥会产生冲突呢

  • 有这么个情况,就是针对同一个文件的同一个部位,不同的分支做了不同的修改,这样在合并的时候,就不知道保留谁去掉谁,比如我们在master分支再test.txt的末行加上一句

  • 并提交

  • 然后切换到login-part分支

  • 然后修改test.txt,在末行加上一句

  • 然后也提交

  • 这个时候,login-part的末行是make conflic from login-part;master的末行是make conflic from master

  • 假设我们要把login-part合并到master上,因为是主分支么

  • 我们先切换到master,

  • 然后执行合并 git merge login-part

  • 这里告诉我们产生冲突了,需要我们手动去决定一下怎么保留,我们打开test.txt看一下

  • 这里我们手动删除特殊符号,保留链各个修改内容,表示两个修改都留下

  • 这里我们做了修改了,需要提交一下,提交的时候不需要带文件名

  • 这时候master分支的修改技术了,但是login-part分支还没有修改,我们再把master分支合并到login-part分支上

  • 切换login-part分支,git checkout login-part

  • 合并,git merge master

  • 发现login-part分支的test.也同步了修改

相关推荐
sunny_liangzilong1 小时前
为何 git 默认是 master分支,而github默认是main分支(DeepSeek问答)
git·github
yangshuo12812 小时前
git安装flutter
git·flutter
16年上任的CTO3 小时前
git基础使用--1--版本控制的基本概念
git·gitee·版本控制
wdxylb7 小时前
GIt使用笔记大全
笔记·git·elasticsearch
maply18 小时前
VSCode 中的 Git Graph扩展使用详解
ide·git·vscode·编辑器·扩展
行十万里人生1 天前
Qt事件处理:理解处理器、过滤器与事件系统
开发语言·git·qt·华为od·华为·华为云·harmonyos
会敲代码的Steve1 天前
git笔记-简单入门
笔记·git
画船听雨眠aa1 天前
gitlab云服务器配置
服务器·git·elasticsearch·gitlab
Tangcan-2 天前
Linux中基础开发工具(yum,vim,gcc/g++,git,gdb/cgdb)
linux·git·vim