gpt4 book ai didi

git - 如何防止 git 要求我提交子模块修改

转载 作者:行者123 更新时间:2023-12-05 04:12:44 24 4
gpt4 key购买 nike

在我的仓库中,我添加了一个子模块

git submodule add -b master https://something.something.git something

现在,每当我听到子模块(远程)有更新时,我都会这样做

git submodule update --remote

并且子模块在本地更新。如果我在某处克隆我的存储库,我会立即获得处于最新状态的子模块。

但是如果我在更新子模块后在我的存储库上运行 git status,我会得到

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)

modified: something (new commits, modified content)

no changes added to commit (use "git add" and/or "git commit -a")

当我跟踪最新的分支时,为什么我需要提交子模块中发生的一些更改?正如我所说,如果我在其他地方克隆 repo,我无论如何都会立即获得更新的子模块,那么这个状态消息是关于什么的?

有没有办法让 git 忽略子模块的变化?

最佳答案

Git 实际上忽略了对子模块的更改,但是它确实记录了适合本次提交的子模块的版本。

例如,如果你在你的 repo 的分支 v1 和子模块的 v1 上,那么继续制作子模块的 v2 和你的 repo 的 v2(这只与 v2 兼容),那么如果你要将您的 repo 恢复为 v1,还需要恢复为使用子模块的 v1。 Git 不会跟踪在子模块的 v1 和 v2 之前发生的实际更改,而只是提交一个指向子模块所在提交的指针。

关于git - 如何防止 git 要求我提交子模块修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39900682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com