git submodule fatal: please stage your changes to .gitmodules or stash them to proceed

2023-10-24 07:50

本文主要是介绍git submodule fatal: please stage your changes to .gitmodules or stash them to proceed,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • --- 简洁版 ↓↓↓↓ ---
    • --- 图文版 ↓↓↓↓ ---
      • 打开myProject 文件夹所在位置,鼠标右键选择`Git Bash Here`
      • 直接删掉submodule中的子模块,比如删掉sub_project1
      • 到.git文件夹下删掉所有相关的东西
        • 删除myProject/.git/config相关内容
        • 删除myProject/.git/modules相关内容
      • 回到submodule文件夹,git submodule add xxx(git仓库地址)
        • `'sub_project1 already exists in the index'`报错,用 --cached
        • `Please stage your changes to .gitmodules or stash them to proceed`报错,删掉 .gitmodules 文件,并把修改记录添加到暂存区
        • 重新进入submodule,进行添加

— 简洁版 ↓↓↓↓ —

$ rm -rf submodule/sub_project1
$ cd .git
$ vim config 

输入i 进入-- INSERT --模式,在这个模式可以编辑文件内容

$ i

删掉 submodule 中sub_project1 的相关信息
Esc键盘,退出文本输入编辑模式
输入:,再输入wq退出 config 文件,

$ cd modules
$ rm -rf submodule/sub_project1$ cd ../../submodule
$ git submodule add gitlab.xxx.com/xxx/sub_project1.git

如果add子模块,提示'sub_project1 already exists in the index',就要

$ git rm --cached sub_project1

Please stage your changes to .gitmodules or stash them to proceed报错,删掉 .gitmodules 文件,并把修改记录添加到暂存区

$ cd ..
$ rm ./.gitmodules
$ git add .$ cd submodule
$ git submodule add gitlab.xxx.com/xxx/sub_project1.git

— 简洁版完—

— 图文版 ↓↓↓↓ —

nuxt 项目,项目名:myProject
部分目录省略
- myProject- .git- assets- pages- submodule- sub_project1- sub_project2- .gitmodules- .gitignore- nuxt.config.js- ... ...

基于已安装git bash 的情况下,

打开myProject 文件夹所在位置,鼠标右键选择Git Bash Here

请添加图片描述

直接删掉submodule中的子模块,比如删掉sub_project1

$ rm -rf submodule/sub_project1
在这里插入图片描述

到.git文件夹下删掉所有相关的东西

$ cd .git

删除myProject/.git/config相关内容

$ vim config
输入i 进入-- INSERT --模式,在这个模式可以编辑文件内容
$ i
删掉submodule信息
Esc键盘,退出文本输入编辑模式
输入:,再输入wq退出 config 文件,

删除myProject/.git/modules相关内容

进入myProject/.git/modules目录,删除 sub_project1的相关数据,慎重!敲错容易误删!防止错误删除,可以到文件夹手动删除
$ cd modules
$ rm -rf submodule/sub_project1

回到submodule文件夹,git submodule add xxx(git仓库地址)

$ cd …/…/submodule
$ git submodule add gitlab.xxx.com/xxx/sub_project1.git

'sub_project1 already exists in the index'报错,用 --cached

如果直接add子模块,提示'sub_project1 already exists in the index',就要
$ git rm --cached sub_project1

Please stage your changes to .gitmodules or stash them to proceed报错,删掉 .gitmodules 文件,并把修改记录添加到暂存区

! 如果提示Please stage your changes to .gitmodules or stash them to proceed,
直接删掉.gitmodules文件,并且把删掉 .gitmodules 的记录提交到仓库的暂存区中
否则每次添加 sub_project1子模块,都会提示 'sub_project1 already exists in the index'

返回上一层目录,删掉 .gitmodules 文件
$ cd …
$ rm ./.gitmodules
$ git add .

重新进入submodule,进行添加

$ cd submodule
$ git submodule add gitlab.xxx.com/xxx/sub_project1.git

这篇关于git submodule fatal: please stage your changes to .gitmodules or stash them to proceed的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273771

相关文章

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Git如何修改已提交人的用户名和邮箱

《Git如何修改已提交人的用户名和邮箱》文章介绍了如何修改Git已提交人的用户名和邮箱,包括注意事项和具体步骤,确保操作正确无误... 目录git修改已提交人的用户名和邮箱前言第一步第二步总结git修改已提交人的用户名和邮箱前言需注意以下两点内容:需要在顶层目录下(php就是 .git 文件夹所在的目

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi