我最近推送到 github,并在我的一个文件夹上看到一个白色箭头。
当我单击文件夹时,它不会打开它。在我的本地机器上,它有内容,但在 github 中我无法访问它们。这是什么意思?
Von*_*onC 50
检查本地您是否.git/在该文件夹下有一个子文件夹。
这意味着该文件夹(本地)是一个嵌套的 Git 存储库,其树 SHA1 被记录为“gitlink”(带有白色直箭头的灰色文件夹)
然后你会在 GitHub 上看到gitlink : 对象的 SHA-1 引用另一个存储库中的提交,由空文件夹名称表示。它是一个嵌套的 Git 存储库。
如果您看到 a folder @ xxx,那么它是一个子模块条目,这意味着您自己的存储库中有一个.gitmodules,除了 gitlink 之外,它还记录了远程存储库的实际 URL。
它表示超级项目期望嵌套子模块的工作目录所在的提交的对象名称。
在这两种情况下(带有文件夹名称的白色箭头,或带有folder @ xxx文件夹名称和版本的白色箭头),它是一个 Gitlink 表示嵌套的 Git 存储库:另一个 Git 存储库的占位符,因此是一个空文件夹。但在第二种情况下,该空文件夹将在特殊.gitmodules文件中被引用/可见。
为了恢复该文件夹内容:
Agit clone --recurse-submodules将在您的本地存储库中恢复该子模块的内容(而不是嵌套的 Git 存储库,其中不记录其 URL ,并且文件夹的内容将保持为空)
白色箭头将保留在远程存储库上,并folder @ version显示您的项目引用了子模块存储库的 SHA1。
或者,如果您不关心该文件夹的历史记录,您可以在本地删除其.git子文件夹(假设它不是子模块,这意味着它没有.gitmodules在主存储库中的文件中引用)、添加、提交和推送。
然后白色箭头将消失,您将能够在 GitHub 上访问该文件夹内容。
小智 24
箭头可能意味着它是一个子模块。
你可以试试:
git add yourfolder
Run Code Online (Sandbox Code Playgroud)
如果这导致如下错误:
xxx submodule xxx
Run Code Online (Sandbox Code Playgroud)
出现,你可以试试这个:
git rm --cached yourfolder
Run Code Online (Sandbox Code Playgroud)
然后,您可以成功运行:
git add yourfolder
Run Code Online (Sandbox Code Playgroud)
小智 11
在您的计算机上,如果您使用箭头导航到目录并尝试查看隐藏文件,您会看到一个.git文件夹,表明它是存储库。这意味着它是包含在您推送到 GitHub 的外部存储库中的存储库。
摆脱箭头并开始正确查看文件的最简单方法(在我看来)是删除文件.git夹。这样,它就不再成为 git 存储库,而是再次成为常规文件夹。
现在,当您推送到 GitHub 时,您可以正常访问该文件夹并查看其所有内容。
就我而言:
git rm --cached portal
ls
git status
git add --all
...
Run Code Online (Sandbox Code Playgroud)
如果你想从 git 配置文件中删除一个子模块,按照这个,记住如果你不想删除那个子模块的本地目录,不要做第 X 步:
从 .gitmodules 文件中删除相关部分。
暂存 .gitmodules 更改 git add .gitmodules
从 .git/config 中删除相关部分。
运行 git rm --cached path_to_submodule (没有尾部斜杠)。
运行 rm -rf .git/modules/path_to_submodule (没有尾部斜杠)。
提交 git commit -m "删除子模块"
(有风险)步骤 X :- 删除现在未跟踪的子模块文件 rm -rf path_to_submodule
| 归档时间: |
|
| 查看次数: |
39359 次 |
| 最近记录: |