git分支的学习

本文详细介绍如何使用Git进行分支管理,包括创建、切换、合并及删除分支等操作,并讲解了常见冲突解决方法及分支使用的最佳实践。

1.查看分支

[root@localhost gitroot]# git branch
* master

创建分支(创建了一个lsk的分支)

[root@localhost gitroot]# git branch lsk

再次查看分支

[root@localhost gitroot]# git branch
  lsk
* master          ## *号表示在当前目录下

切换分支

[root@localhost gitroot]# git checkout lsk
D       2.txt
Switched to branch 'lsk'

新建一个2.txt,并加入上传到仓库

[root@localhost gitroot]# echo "lushuaizi" >2.txt
[root@localhost gitroot]# git 2.txt
git: '2.txt' is not a git command. See 'git --help'.
[root@localhost gitroot]# git add 2.txt
[root@localhost gitroot]# git commit -m"new file 2.txt"
[lsk 8d35751] new file 2.txt
 1 file changed, 1 insertion(+)
 create mode 100644 2.txt

查看当前分支下有哪些文件

[root@localhost gitroot]# ls
1.txt  2.txt

切换回分支master并查看只有1.txt

[root@localhost gitroot]# git checkout master
M       1.txt
Switched to branch 'master'
[root@localhost gitroot]# ls
1.txt

分支合并
把lsk合并到master

[root@localhost gitroot]# git merge lsk
Updating 17b6365..8d35751
Fast-forward
 2.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 2.txt

分支冲突
在master分支下

[root@localhost gitroot]# cat 2.txt
lushuaizi
<<<<<<< HEAD
 add 2
=======
2
1
>>>>>>> lsk

在lsk分支下

[root@localhost gitroot]# cat 2.txt
lushuaizi
2
1

无法合并

[root@localhost gitroot]# git merge lsk
Auto-merging 2.txt
CONFLICT (content): Merge conflict in 2.txt
Automatic merge failed; fix conflicts and then commit the result.

解决方法:两个 文件内容修改为一致,重新合并

[root@localhost gitroot]# vi 2.txt
lushuaizi
2
1
~
[root@localhost gitroot]# git add 2.txt
[root@localhost gitroot]# git commit -m"2.txt"
[master 7c3cdc4] 2.txt
[root@localhost gitroot]# git merge lsk
Already up-to-date.

分支删除
在master分支下,可以删除lsk

[root@localhost gitroot]# git branch -d lsk
Deleted branch lsk (was 1e4e60d).

强制删除

[root@localhost gitroot]# git branch -D lsk

使用分支原则
① master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上。
② 创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master。
③ 开发人员应该在dev的基础上再分支成个人分支,个人分支(在自己PC上)里面开发代码,然后合并到dev分支。
在这里插入图片描述
查看远程分支命令为git ls-remote origin,可以看到所有分支。
在这里插入图片描述
git push分支分两种情况:
① 当本地分支和远程分支一致时
git push会把所有本地分支的变更一同推送到远程,如果想只推送一个分支,使用git push origin branch-name命令。
② 当本地分支比远程分支多
默认git push只推送本地和远程一致的分支,想要把多出来的本地分支推送到远程时,使用git push origin branch-name命令如果推送失败,先用git pull抓取远程的新提交。
在这里插入图片描述git clone的时候默认只把master分支克隆下来。如果想把所有分支都克隆下来,需要手动创建,在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name命令,需要注意本地和远程分支的名称要一致
在这里插入图片描述

<think>好的,用户想学习Git分支管理的相关知识,包括教程和最佳实践。首先,我需要整理Git分支管理的基础概念,然后根据提供的引用内容,总结常见的分支策略和最佳实践。用户可能对不同的分支模型(如Git Flow、GitHub Flow等)感兴趣,需要逐一解释它们的特点和适用场景。同时,结合引用中的信息,比如引用1提到的五种分支策略,引用3和4中的具体操作步骤,以及引用5的最佳实践,我需要将这些内容结构化,以清晰易懂的方式呈现。还要注意用户可能的需求,比如如何选择合适的分支策略,常用命令有哪些,以及如何解决实际开发中的问题(如修复bug时的分支管理)。最后,生成相关问题帮助用户进一步学习,确保回答覆盖了用户可能关心的各个方面。</think>### Git分支管理学习教程与最佳实践 #### 一、Git分支基础概念 1. **分支的本质** Git分支本质是一个指向提交对象的**可变指针**,与SVN等工具不同,Git分支创建和切换成本极低[^4]。 2. **默认分支** `master`(或`main`)分支是默认创建的主分支,但无特殊性质,与其他分支完全平等[^2]。 #### 二、常见分支管理策略 1. **Git Flow** - 特点:严格定义开发、发布、热修复流程 - 分支结构: ``` master(生产环境) ├── develop(集成分支) │ ├── feature/*(功能开发分支) │ └── release/*(预发布分支) └── hotfix/*(紧急修复分支) ``` - 适用:需要长期维护的复杂项目[^1] 2. **GitHub Flow** - 特点:简化流程,强调持续部署 - 规则: - 所有开发基于`master`分支 - 通过Pull Request进行代码审查 - 合并后立即部署 - 适用:SaaS类快速迭代项目[^1] 3. **Trunk-Based Development** - 特点:所有开发者直接向`master`提交代码 - 关键实践: - 短生命周期分支(1-2天) - 特性开关控制功能发布 - 适用:高成熟度团队与CI/CD深度集成项目 #### 三、最佳实践指南 1. **分支命名规范** - 功能分支:`feature/login-page` - 修复分支:`hotfix/payment-bug` - 发布分支:`release/v2.1.0` 2. **工作区管理技巧** ```bash # 临时保存未完成的工作(引用3示例) git stash git checkout master git checkout -b hotfix/xxx # 修复完成后恢复工作区 git stash pop ``` 3. **二进制文件处理** - 使用`git diff --numstat`检测二进制文件变更[^5] 4. **第三方库管理** - 建议通过子模块(submodule)或包管理器独立管理[^5] #### 四、常用命令速查 | 操作场景 | 命令示例 | |-------------------------|-----------------------------------| | 创建分支 | `git branch feature/new-api` | | 切换分支 | `git checkout develop` | | 合并分支(无冲突) | `git merge feature/login` | | 删除已合并分支 | `git branch -d feature/old` | | 查看分支图 | `git log --graph --oneline --all`| #### 五、策略选择建议 1. **初创团队** → GitHub Flow 2. **传统软件** → Git Flow 3. **微服务架构** → Trunk-Based Development 4. **紧急修复** → 单独创建`hotfix`分支[^3]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值