警告!通过对父母进行结账,刚刚丢失了嵌套的子回购

时间:2017-01-31 21:30:17

标签: git github-for-mac

直到最近,我才有了这个文件结构:

-Repo A
 |- .git
 |- files
 |- Repo B
    |- .git
    |- files

然后我随便在Repo A上检查了一个不同的分支(只需在Github for Mac中切换分支),立即切换回来,然后发表声明:

-Repo A
 |- .git
 |- files
 |- Repo B

Repo B在那里但是空了!甚至不是.git目录!

没有遥控器,还有2周的3D建模。

(具有讽刺意味的是,我的第一个3D模型(在所有这一切之前)腐败了所以我想我会定期使用git并提交。所以我做了......)

1 个答案:

答案 0 :(得分:3)

嵌套的git repo仅记录为 gitlink ,这是主要回购邮件的特殊entry in the index

当您结帐回原始分支时,Git会恢复gitlink,但不知道SHA1来自哪个仓库。

要同时保留SHA1 内容,您需要将repo private void createFolder() { if (isStoragePermissionGranted()) { File folder = new File(Environment.getExternalStorageDirectory()+ File.separator + "DebugData"); if(!folder.exists()){ folder.mkdir(); } } public boolean isStoragePermissionGranted() { if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { return true; } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); return false; } } else { //permission is automatically granted on sdk<23 upon installation return true; } } 声明为 submodule
然后,您将在主回购B中拥有一个.gitmodules文件,该文件将保留回购A远程源网址的记录。