git分支管理

建立dev分支

在当前分支下新建一个dev分支然后切换到该分支

git branch dev
git checkout dev
# 相当于 git checkout -b dev
git branch -a

查看分支,当前分支前会有*标识

git add .
git commit -m "some changes in dev"

修改工作区文件,并在dev分支上进行一次提交

git branch -d branchname

删除本地分支

合并分支

快速合并

切回master分支,合并dev到当前分支,然后删除dev分支

git checkout master
git merge dev
git branch -d dev

这次合并是 Fast-forward 快速模式,直接将 master 指向 dev 的当前分支

解决冲突

若在dev分支中修改的文件,在master分支中也被修改了,此时合并则会提示冲突

Auto-merging readme.txt
CONFLICT (add/add): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

需要根据提示手动解决冲突,然后再提交

git add readme.txt
git commit -m "fix conflict"

git status可以输出有冲突的文件
git使用<<<<<<<,=======,>>>>>>>标记不同分支的内容

git log --graph --pretty=oneline --abbrev-commit

查看合并情况

git log --graph

查看分支合并图

分支管理策略

Fast-forward 快速合并模式,删除分支后,会丢掉分支信息,若要强制禁用 Fast-forward 模式,git会在merge时生成一个新的commit,此时,从分支历史可查看分支信息

git merge --no-ff -m "merge with no-ff" dev

--no-ff表示禁用Fast-forward,本次合并master需要进行一次commit,所以使用-m添加描述

git log --graph --pretty=oneline --abbrev-commit

查看分支历史

分支策略:首先,master分支应是稳定的,仅用来发布新版本,都在dev分支上进行开发,dev是不稳定的,每个开发人员都有自己的分支,可经常与dev分支进行合并,但只在发布新版本时与master分支合并

bug分支

开发过程中,若突然接到一个代号3的bug需要紧急修复,但是当前正在dev上的开发还未完成,但是bug又很紧急,这时候应该先将工作区内容保存,并切换到相应分支,并新建一个临时分支修复bug

git stash将当前工作空间保存,等以后恢复后继续工作

如需要在master分支上修复bug,在该分支上创建临时分支

git checkout master
git branch -b issue3

完成修复后,合并issue3master分支并删除issue3分支,再切回到dev分支继续开发

git checkout master
git merge issue3
git branch -d issue3

git checkout dev
git status

此时,git status查看发现工作区是干净的,未被修改过

git stash list查看stash中内容,发现里面有原工作区内容
stash中恢复

git stash apply

恢复保存的内容,但stash中内容不被删除,可用git stash drop主动删除

git stash pop

stash中内容出栈,stash中内容会被删除

可以多次git stash,恢复的时候使用git stash list查看,再指定恢复的内容

git stash apply stash@{0}

feature分支

开发过程中,在添加新功能时,肯定不希望一些实验性的代码将主分支搞乱,所以每添加一个新功能时最好新建一个feature分支,开发完成后,合并并删除

此时,接到一个新任务,任务代号caribbean,功能计划占领加勒比,跟随杰克船长

git checkout -b feature-caribbean

开发完成后,提交,合并再删除

就在此时,接到命令,杰克船长不再出现在加勒比了,任务终止
需要删除该分支git branch -d feature-caribbean
git会提示该分支还未被合并,若删除会丢掉修改,若要强行删除,需使用-D参数即可

posted @   sgqmax  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示