Git子模块混淆

Git子模块混淆,git,bitbucket,git-submodules,Git,Bitbucket,Git Submodules,我创建了一个新项目,其中包括一些已经有git存储库的文件夹 编辑:内部git存储库没有上传到在线的某个地方,也没有在其中进行提交,只有在主repo中进行提交 当我用git add--all为初始提交添加所有文件并将它们推送到bitbucket时,内部的git跟踪文件夹不在s中,而是列出了一个类似链接的条目,其中包含一个类似sha哈希的字母数字 <folder name> → 031c27df078f [031c27df078f] → 031c27df078f[031c27df078

我创建了一个新项目,其中包括一些已经有git存储库的文件夹

编辑:内部git存储库没有上传到在线的某个地方,也没有在其中进行提交,只有在主repo中进行提交

当我用git add--all为初始提交添加所有文件并将它们推送到bitbucket时,内部的git跟踪文件夹不在s中,而是列出了一个类似链接的条目,其中包含一个类似sha哈希的字母数字

<folder name> → 031c27df078f [031c27df078f]
→ 031c27df078f[031c27df078f]
经过一番混乱之后,我最终删除了本地文件以及子模块中的更改和.git子文件夹

我尝试重新设置到我的第一次提交,但没有恢复任何文件

有没有办法从我的主要git回购中收回我的更改,或者它们永远丢失了

是否有办法推送包括子模块在内的所有文件夹

内部git跟踪的文件夹不存在于s中,而是列出了一个类似链接的条目,其中包含一个类似sha哈希的字母数字

这些不是子模块,而是简单的()表示嵌套的git repo SHA1。
见“”

有没有办法从我的主要git回购中收回我的更改,或者它们永远丢失了

至少克隆回您的repo(您推送gitlinks+代码的repo):您将在那里找到您的更改

然后在新的回购协议中重新开始,并强制推进


有没有办法让内部回购(现在是一个链接)恢复到我将代码推送到bitbucket时的状态

你有那些内部回购的SHA1,希望你有他们的url

因此,在您全新的回购协议中,一旦您添加并提交了自己的代码,这次将这些回购协议添加为子模块:

 cd /path/to/new/repo
 git submodule add -- /url/repo1
 cd repo1
 git checkout <SHA1>
 cd ..
 git add repo1 # no trailing slash
 git commit -m "add repo1 as submodule"
 git push -u origin master
cd/path/to/new/repo
git子模块添加--/url/repo1
cd报告1
git签出
光盘
git add repo1#无尾随斜杠
git提交-m“将repo1添加为子模块”
git-push-u源主机
然而,OP确实提到:

我的文件仍处于初始状态。但是我所有的更改都是在粘贴的一个中完成的。另一个大错误是,当我创建主回购协议时,我唯一的承诺是主回购协议。内部的一个处于初始状态


在这种情况下(没有内部.git文件夹),这些机会可能就没有了。

我的主回购的更改已经存在,但是有没有办法将内部回购(现在是链接)恢复到我将代码推送到bitbucket时的状态?@antoniskamamis Sure。我已经编辑了答案来解决这个问题。我的解释不好,但我还没有在网上的某个地方得到内部回购协议。bitbucket是为我上传的吗?@bitbucket没有注册那些回购url。只有他们的SHA1。这些回购协议只是你电脑上的本地回购协议吗?我在我的项目中复制粘贴了它们。然后我意外地删除了整个文件夹,包括.git子文件夹。我唯一的希望是,如果外部的git回购协议跟踪内部的第二个,那么我就可以拿回我的文件