我有一个非常奇怪,糟糕的情况。免责声明,我是git的新手,而且我搞砸了。
所以我的fork中有很多子模块,基于monodevelop。
首先:我甚至无法使用更新我的子模块
git submodule update --init --recursive
。
我尝试了一些类似的命令,包括rebase,foreach等。所以我终于使用git submodule foreach git pull origin master
得到了最新的。在此之后,我收到了所有文件。然后我承诺并推动了我的更改
现在:我刚注意到我的所有子模块都有冲突。 <<<<<<< HEAD等我不知道这些来自哪里,我也不知道如何解决这些问题。
git status表示一切都是最新的。子模块更新表示即使用力也一切都是最新的。 git fetch说一切都是最新的。
答案 0 :(得分:1)
git submodule update --init --recursive
会将您的子模块更新为特定的SHA1,记录在主仓库的索引中(作为gitlink entry)。
如果您需要一个子模块跟随一个分支,您可以转换该子模块声明,以使其跟随该分支(在初始步骤之后)git submodule update --recursive --remote
。
请参阅" Git submodules: Specify a branch/tag"
答案 1 :(得分:1)
任何弄乱他们的子模块的人。我也得到了朋友的帮助。
我所做的是合并子模块并将它们提交给我的主人。一般的经验法则是我不应该这样做,而是通过更改向子模块仓库发出单独的拉取请求。
无论如何,我刚进入每个子模块目录git log # hit q to cancel out of the entire output.
。当我得到正确提交的提交时,我想回去。
然后我做了git reset --hard c5652 # Partial commit id, if no other branch or file have that name.
这是我的问题的解决方法。
我在整个工作中并不是很清楚,我肯定会读更多。