2016-02-12 125 views
3

我创建了一个新项目,其中包含一些已经拥有git存储库的文件夹。Git子模块混淆

编辑:内Git仓库没有地方上载网上,并没有当我添加的所有文件与git add --all初始仅在主回购

在他们那里做,提交承诺和他们推要到位桶内git的跟踪文件夹不存在在S,而是一个链接般的进入与象SHA哈希码的字母数字像上市

<folder name> → 031c27df078f [031c27df078f] 

一些混乱,我有我结束了我的删除后罗cal文件与子模块中的更改和.git子文件夹。

我努力重置我第一次提交但没有文件恢复。

有什么办法让我的变化回到我的主要仓库回购或他们永远失去了?

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

回答

2

内GIT中跟踪文件夹不存在在S而是一个链路状条目用像SHA散列

这些并非子模块,但简单gitlinkspecial entries in the index)字母数字列出代表嵌套的git回购SHA1。
请参阅“Difference between nested git repos and submodules”。

有什么办法让我的修改从我的主git仓库回来,还是他们永远丢失?

至少克隆你的回购(你推送gitlinks +你的代码的回购):你会在那里找到你的改变。

然后重新开始一个新的回购和强制推。


有没有什么办法让内回购(也就是现在的一个链接),它是国家,当我推开代码到位桶?

你有这些内部回购的SHA1,并希望你有他们的网址。

所以在您全新的回购协议,一旦你加入,并承诺自己的代码,添加这些回购的子模块此时:

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 

然而,OP确实提到:

我仍然有文件处于初始状态。但是,我所做的所有更改都是在粘贴的内容中完成的。另一个重大错误是我创建它时唯一的提交是在主要的回购库上。内在的一个处于初始状态。

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

+0

从我的主要回购的变化在那里,但有什么办法让内部回购(现在是一个链接)到我把代码推到bitbucket时的状态? – eltonkamami

+0

@antoniskamamis好的。我编辑了答案来解决这个问题。 – VonC

+0

我的糟糕解释,但我没有得到内部回购网上的地方。 bitbucket会为我上传吗? – eltonkamami