Git分支 查看branch 创建 切换checkout 合并merge(先切回主分支) 删除branch -d 推送push
Git分支
分支的概念
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
分支在实际开发中的作用
在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发
master 主分支
在初始化本地 Git
仓库的时候,Git
默认已经帮我们创建了一个名字叫做 master
的分支。通常我们把这个master
分支叫做主分支。
在实际工作中,master
主分支的作用是:用来保存和记录
整个项目已完成的功能代码。
因此,不允许程序员直接在 master 分支上修改代码,因为这样做的风险太高,容易导致整个项目崩溃。
功能分支
由于程序员不能直接在 master
分支上进行功能的开发,所以就有了功能分支的概念。
功能分支指的是专门用来开发新功能的分支,它是临时从 master
主分支上分叉出来的,当新功能开发且测试完毕后,最终需要合并到 master
主分支上
查看分支列表(⭐⭐⭐)
使用如下的命令,可以查看当前 Git 仓库中所有的分支列表:
git branch
运行的结果如下所示:
注意:分支名字前面的 * 号表示当前所处的分支。
创建新分支
使用如下的命令,可以基于当前分支,创建一个新的分支,此时,新分支中的代码和当前分支完全一样:
git branch 分支名称
切换分支
使用如下的命令,可以切换到指定的分支上进行开发:
git checkout login
分支的快速创建和切换(⭐⭐⭐)
使用如下的命令,可以创建指定名称的新分支,并立即切换到新分支上:
# -b 表示创建一个新分支
# checkout 表示切换到刚才新建的分支上
git checkout -b 分支名称
图示如下:
注意:
"git checkout -b
分支名称" 是下面
两条命令的简写形式:
① git branch 分支名称② git checkout 分支名称
git合并分支
功能分支的代码开发测试完毕之后,可以使用如下的命令,将完成后的代码合并到 master
主分支上:
# 和并功能分支之前,一定要保证,主分支和功能分支上面的代码进行版本提交(合并的是本地仓库,不是工作区);
# git checkout login
# 然后,创建新文件,添加新代码
# git add .
# git commit -m "功能介绍"# 1. 切换到 master 分支
git checkout master# 2. 在master 分支上运行 git merge 命令,将 login 分支的代码合班到 master 分支
git merge login
图示如下:
合并分支时的注意点:
假设要把 C 分支的代码合并到 A 分支,
则必须先切换到 A 分支上,再运行 git merge
命令,来合并 C 分支!
删除本地分支
当把功能分支的代码合并到 master
主分支上以后,就可以使用如下的命令,删除对应的功能分支:
git branch -d 分支名称 (如果没有合并,那么删除后报错)
git branch -D 分支名称 (强制删除)
图示如下:
遇到冲突时的分支合并
如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。 此时,我们需要打开这些包含冲突的文件然后手动解决冲突。
# 假设:在把 reg 分支合并到 master 分支期间
git checkout master
git merge reg# 打开包含冲突的文件,手动解决冲突之后,再执行如下命令
git add .
git commit -m "解决了分支合并冲突的问题"
远程分支操作
git remote add origin 地址
把一个地址 保存到origin变量当中
当然这个origin变量名 可以改 一般不改
将本地分支推送到远程仓库(⭐⭐⭐)
如果是第一次将本地分支推送到远程仓库,需要运行如下的命令:
# -u 表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带 -u 参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称# 实际案例
git push -u origin payment:pay# 如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化
git push -u origin payment
注意:
1.第一次推送分支需要带 -u 参数,此后可以直接使用 git push
推送代码到远程分支。
2. -u 记录这个地址 记录这个分支 下一次不用再写这么多东西
查看远程仓库中所有的分支列表
通过如下的命令,可以查看远程仓库中,所有的分支列表的信息:
git remote show 远程仓库名称
跟踪分支(⭐⭐⭐)
跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中。需要运行的命令如下:
删除本地原有同名分支; git branch -d "分支名称"
# 示例
git checkout pay# 从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称# 示例
git checkout -b payment origin/pay
本地没有此分支,远程也没有此分支就会报错;
拉取远程分支的最新的代码
可以使用如下的命令,把远程分支最新的代码下载到本地对应的分支中:
# 从远程仓库,拉取当前分支最新的代码,保持当前分支的代码和远程分支代码一致
git pull
删除远程分支
可以使用如下的命令,删除远程仓库中指定的分支:
# 删除远程仓库中,制定名称的远程分支
git push --delete 远程仓库名称 远程分支名称# 示例
git push --delete origin pay# 之前学习的 强行删除本地分支
git branch -D register
总结
- 掌握 Git 中基本命令的使用
- git init 初始化仓库- git add . 将工作区内容添加到暂存区- git commit –m "提交消息" 提交代码到本地仓库- git status 和 git status -s 查看状态
- 使用 Github 创建和维护远程仓库
- 配置 Github 的 SSH 访问
- 将本地仓库上传到 Github
- 能够掌握 Git 分支的基本使用
- git checkout -b 新分支名称 创建新分支 并切换到新分支上 - git push -u origin 新分支名称 将本地的分支版本上传到远程- git checkout 分支名称 切换分支- git branch 查看分支
Git分支 查看branch 创建 切换checkout 合并merge(先切回主分支) 删除branch -d 推送push相关推荐
- git切换分支合并后再切回原来分支导致没有提交的代码丢失
git切换分支合并后再切回原来分支导致没有提交的代码丢失 前言 在企业开发中,总会需要用远程仓库来管理整个团队的项目代码,git是我们常用的代码提交工具,虽然就我个人而言,在开发的过程中就只用到几个简 ...
- 【Git实战技巧】恢复被强制推送push失踪的代码
前言 Git是一个易学难精的分布式版本控制系统,被我们码农常用于代码的管理.如果你还不了解Git,建议先通过廖雪峰的Git教程进行了解,再来看本文,因为本文以使用技巧为主,不会在基础名词上做过多解释. ...
- Git回退已经提交commit的(还未推送push的)代码及撤回代码回退
1.Git回退已经提交的代码 原文链接(原文写的是已经推送push的代码) http://t.csdn.cn/CDjgq 已经开始难过了,我提交后没有推送就按照上文提示进行了代码回退,结果idea里面 ...
- Git本地与远程配对命令:两种 一种是在推送push时候配对 一种是新建分支checkout -b时候配对
推送的配对git push --set-upstream origin dev新建分支时候的配对git checkout -b feature-group-account origin/feature ...
- Git撤销已经推送(push)至远端仓库的提交(commit)信息
原文链接:https://blog.csdn.net/hanchao5272/article/details/79435730 有关修改提交(git commit)信息的方法可以参考: Git com ...
- Linux shell 学习笔记(1)— 文件和目录(查看、创建、复制、软硬链接、重命名及删除操作)
1. 启动 shell /etc/passwd 文件包含了所有系统用户账户列表以及每个用户的基本配置信息: christine:x:501:501:Christine Bresnahan:/home/ ...
- 杰理之通话时,将主耳放入充电仓,声音不切换到副耳,直接切回到手机端【篇】
- Win10的Alt+Tab切换风格不习惯,切回win7模式的办法 - 置换alt和win键的位置 - Macbook键盘映射
直接上图 原Alt+tab效果图 @ Win10 on Macbook with Bootcamp驱动: KeyTweak(按键修改器) 2.3 https://dl.pconline.com.cn/ ...
- idea 使用svn将主分支修改的代码更新到子分支
hello,大家好- 这是一个带着无奈和崩溃以及带着一些欣喜的态度,写下的一篇博客. 事情是这样发生的-------- 就在前几天晚上,涉及到了svn分支的情况.使用分支还没有完全改完.只改了一部分, ...
最新文章
- C#如何向EXCEL写入数据
- 新一代企业内部故障报修软件功能实现
- 表格数据清空还能恢复吗_数据恢复大师:清空回收站文件如何恢复?
- hdu1.3.2 Rank
- linux中配置jmeter环境变量,linux java 和jmeter 环境变量配置文件笔记(原)
- 浏览器解析JavaScript的原理
- java 拼音码_java代码将汉字转换成拼音
- Android 性能优化探究
- jsp隐式对象_JSP隐式对象
- iptv直播服务器维护,IPTV机顶盒的智能化配置和维护方案介绍【详解】
- Scala+HuffmanCoding实现无损压缩
- mariadb无法远程访问的解决思路
- 跨境电商生态大会在深举办 连连支付母公司发布新平台“LianLian Link”
- Leetcode Day10 最长公共子序列+字符串交织
- 年轻人,你活着不是为了观察K线做布朗运动
- php fopen 指定路径,fopen 系统找不到指定路径 PHP文件包含详细讲述
- 使用GNS3进行子网及路由的简单配置
- 《电气图用图形符号》
- HTML下拉框、二级联动 select多级联动
- IPO:Impinj预计发行460万股普通股
热门文章
- java基础之TreeMap
- 分布式锁-Redis解决方案和Redisson解决方案
- java将简体中文_【Java】简体中文、繁体中文转换
- AIGC发展路径思考:大模型工具化普及迎来新机遇
- sql分组 会计分录_oracle\EBS\常用表\视图\会计分录\mtl_serial_numbers\总账
- PCA9685:I2C转16路PWM,助力你的系统
- 【python学习】-字典学习(访问字典所有键与值、修改与更新字典、删除字典)
- 加密算法详解AES/HmacSHA1/DES
- FLStudio中文全套插件包FL水果20.8中文宿主软件插件
- 联想电脑thinkPad开机黑屏