当前位置: 首页 > news >正文

3.git的分支携带问题是什么?怎么解决?

目录

1.问题

2.知识储备

(1).git是什么

(2).git的常见操作

[1].仓库初始化与克隆

{1}.初始化本地仓库

{2}.克隆远程仓库

[2].日常开发:跟踪与提交修改

{1}.查看文件状态

{2}.暂存文件

{3}.提交到本地仓库

[3].分支管理

{1}.查看分支

{2}.切换分支

{3}.合并分支

{4}.删除分支

[4].远程仓库协作

{1}.推送本地分支到远程

{2}.拉取远程仓库更新

{3}.查看远程仓库信息

(3).git的分支携带问题

[1].为什么你只修改了分支,但是你的master节点也会自动跟着分支修改呢?

{1}.你可能根本没切换到自已的分支,而是一直在master上修改

{2}.git的分支携带(修改还在工作区 / 暂存区,没提交到你的分支)

3.分析

4.解决方案

(1).回溯代码

(2).删除代码

(3).重新拉取代码

5.小结

6.扩展


1.问题

小编在写项目代码时,使用了代码管理工具git,小编发现了一个大家很容易忽视的问题-"git的分支携带问题"。起因是小编从远程代码库拉取了master节点的代码,并在本地创建了一个feature节点进行功能开发。然后小编在写好了以后,什么也没做,切换到主节点准备合并,但是!!!! 小编发现主节点居然有了feature的代码,按照理论来说,git的master节点,和feature分支一定是不会同步的!那么为什么会这样呢?又怎么解决呢?

 ps: 如果想要系统学习git,可以看一下小编的0基础上手git

2.知识储备

ps: 如果想要系统学习git,可以看一下小编的0基础上手git

想要理解和解决这个问题,一些知识储备是必不可少的。

(1).git是什么

Git 是一款分布式版本控制系统,核心用于跟踪代码(或文件)的修改历史、管理版本,并支持多人协同开发,是开发领域(尤其软件行业)最常用的工具之一。

(2).git的常见操作

下面是在项目开发中常用到的git操作

[1].仓库初始化与克隆

{1}.初始化本地仓库

作用:在项目目录创建新的 Git 仓库

git init  # 在当前目录初始化,生成隐藏的 .git 文件夹(仓库核心文件)
{2}.克隆远程仓库

作用:复制远程仓库到本地(如 GitHub/GitLab 上的项目)

git clone <远程仓库地址>  # 例:git clone https://github.com/example/repo.git

[2].日常开发:跟踪与提交修改

{1}.查看文件状态

作用:检查工作区(本地文件)与暂存区的差异

git status  # 显示哪些文件被修改、新增或待提交
{2}.暂存文件

作用:将工作区的修改添加到「暂存区」(准备提交)

git add <文件名>  # 暂存单个文件,例:git add README.md
git add .        # 暂存所有修改(新增、修改、删除的文件)
{3}.提交到本地仓库

作用:将暂存区的修改保存到本地仓库,生成版本记录

git commit -m "提交说明"  # 例:git commit -m "fix: 修复登录按钮样式问题"

[3].分支管理

{1}.查看分支

作用:列出本地 / 远程分支(当前分支前有 * 标记)

git branch        # 查看本地分支
git branch -r     # 查看远程分支
git branch -a     # 查看所有分支(本地+远程)
{2}.切换分支

作用:在已有的分支间切换

git checkout <分支名>  # 例:git checkout develop
{3}.合并分支

作用:将目标分支的代码合并到当前分支(如合并 feature 到 develop)

git checkout develop       # 先切换到接收合并的分支
git merge feature/login    # 合并 feature/login 到 develop
{4}.删除分支

作用:删除本地 / 远程已完成的分支

git branch -d <分支名>       # 删除本地分支(需先合并或确认放弃修改)
git push origin --delete <分支名>  # 删除远程分支

[4].远程仓库协作

{1}.推送本地分支到远程

作用:将本地分支的修改同步到远程仓库

git push origin <本地分支名>  # 例:git push origin feature/login(首次推送)
git push  # 后续推送,默认推送到当前分支关联的远程分支
{2}.拉取远程仓库更新

作用:获取远程仓库的最新代码并合并到本地当前分支

git pull origin <远程分支名>  # 例:git pull origin develop
git pull  # 简化:拉取当前分支关联的远程分支
{3}.查看远程仓库信息

作用:查看绑定的远程仓库地址

git remote -v  # 显示 fetch(拉取)和 push(推送)地址

(3).git的分支携带问题

[1].为什么你只修改了分支,但是你的master节点也会自动跟着分支修改呢?

{1}.你可能根本没切换到自已的分支,而是一直在master上修改

最常见的原因是:你以为自己在 “自己的分支” 上开发,但实际上始终在master分支上操作。

检查方法:执行 git branch 命令,看看带 * 号的分支是不是你预期的开发分支(比如 feature/my-branch)。如果 * 号在 master 旁边,说明你一直在master上修改,自然会在master看到这些变化。

{2}.git的分支携带(修改还在工作区 / 暂存区,没提交到你的分支)

如果你在自己的分支修改了代码,但没有执行git commit提交到分支历史(只是在工作区或暂存区),此时切换到master分支,Git 会默认把这些未提交的修改 “带过去”(因为未提交的内容不属于任何分支,属于当前工作区)。这就是git的分支携带问题

3.分析

出现了git分支携带的问题是,我只想在开发分支上做开发,而不想在master节点做开发,因此我的目的是只有分支上有我的实现代码。但是我在开发完分支节点后,忘记提交到本地仓库,导致我在切换master节点查看要开发的其他模块时,我开发的分支由于git分支携带问题,自动刷新到我的master节点上。

 ps: 如果想要系统学习git,可以看一下小编的0基础上手git

4.解决方案

我个人的解决方案是以下三种,我个人会倾向第三种,因为我怕没删干净和回溯的版本有问题(因为回溯可能会有一点问题)

(1).回溯代码

主流的IDE(集成开发环境),如Java的IDEA、Python的Pycharm等都支持代码回溯功能,也就是代码回到某个时间段

我们只要回溯到最开始拉取的时间段,重新编写就可以了

(2).删除代码

为了保证我们的分支是开发好的,master是原来的,我们只要删掉git分支携带 带过来的代码,自然就可以了

(3).重新拉取代码

重新拉取代码,避免分支携带就可以了

 ps: 如果想要系统学习git,可以看一下小编的0基础上手git

5.小结

什么你都看到小结了?你难道就是传说中的"勤奋者"?

在本文,

1.你学会了什么是git以及git的常见操作。

2.你学会了什么是git的分支携带,以及如何解决。

式注:如果发现文章有错别字、理解错误、语义错误等问题,请联系作者修改。大家一起努力才能创建更好的生态!

6.扩展

如果想要系统学习git,可以看一下小编的0基础上手git

http://www.dtcms.com/a/483738.html

相关文章:

  • 网站建设与维护面试免费网站申请域名39939cn
  • Chrome和IE获取本机ip地址
  • 个人网站建设及实现外贸是什么工作
  • 【下载安装】navicate
  • 河北保定建设集团招聘信息网站游戏推广赚佣金
  • 找人制作网站 优帮云wordpress apache 伪静态
  • 大模型前世今生(十四):保持训练稳定性
  • Python基础 -- Python生成器表达式 next函数与多值筛选实战
  • 珠海品牌型网站建设网页设计的发展
  • 背景全屏网站建筑网站设计大全
  • Zabbix 安装与配置
  • Java Socket编程深度解析:从网络基础到高性能通信架构的全景实践
  • 网站建设湖南岚鸿建设免费推广自己的网站
  • 网页设计元素湖南关键词优化推荐
  • 共形场拓扑序
  • Java线程知识(二)
  • 全国射箭协作区锦标赛
  • IFC 2x3 和IFC4_ADD2 和IFC 4.3 ADD2
  • 定制规划设计公司seo去哪学
  • 公司网站建设推广方案模板网站没有权重
  • 14-无监督学习:讲解无需标注数据的数据分析和模式发现方法
  • Spring Framework源码解析——ServletConfigAware
  • 微商城网站建设策划方案网站建设的市场规模
  • UDP 首部
  • 【Kubernetes】K8s 集群 RBAC 鉴权
  • 两个数组的dp问题
  • 有没有免费的网站服务器网站开发离线下载报表
  • 网站服务器ip地址怎么查世界500强企业排名
  • 万网租空间 网站网站优化改版
  • 网站推广公司渠道WordPress入门编辑器