gpt4 book ai didi

git - 排除子项目提交 Git

转载 作者:行者123 更新时间:2023-12-05 02:10:46 25 4
gpt4 key购买 nike

我怎样才能排除 Subproject commit .... 我在子模块中没有做任何更改,只从远程存储库中 pull 更改!我想我在创建子模块时在主存储库中提交了一些不需要的东西。有什么想法吗?

1) 当我在主仓库中创建子模块时 git diff 也显示了

submodule-path:
Subproject commit 5a8162ff9a602deb96956854346988e1ee45672e

我犯了这个

2) 然后有人提交了子模块,所以它有以下日志

2ff89a2bfcaa0 last commit
5a8162ff9a602d first commit

3) 我更新了子模块

git submodule update --remote --merge

4) 现在 git status 显示

modified:   submodule-path (new commits)

但我在子模块中什么也没做,只 pull 了最后的远程更改!我需要这最后的改变

git diff 显示

diff --git a/submodule-path b/submodule-path
index 5a8162f..2ff89a2 160000
--- a/submodule-path
+++ b/submodule-path
@@ -1 +1 @@
-Subproject commit 5a8162ff9a602deb96956854346988e1ee45672e
+Subproject commit 2ff89a2bfcaa014885a70b0da86e997ecd8d0688

最佳答案

更新:

这不是错误。子模块就是以这种方式工作的。

主仓库不跟踪子模块的文件。它只跟踪子模块的 url 和提交 ID(子模块在特定点的状态)。

Quote from Starting with Submodules in book Pro Git

Although sbmodule DbConnector is a subdirectory in your working directory, Git sees it as a submodule and doesn’t track its contents when you’re not in that directory. Instead, Git sees it as a particular commit from that repository.

由于您使用 git submodule update 更新了模块,因此您必须暂存更改(实际上是更新的提交 ID)。如果你不想更新子模块的跟踪,那么就不要在开始时使用 git submodule update,或者直接放弃更改。


子模块很可能是 HEAD 分离的。进入子模块,重置子模块以修复 HEAD 分离状态。

# Do this in the submodule
git reset --hard origin/master

然后将子模块更新为最新的提交。

# run in the project's root, not the submodule's
git submodule update --remote --merge

关于git - 排除子项目提交 Git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58170570/

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