{"id":21306121,"url":"https://github.com/brlin-tw/pivot-submodule-git-dir","last_synced_at":"2026-05-19T11:06:59.739Z","repository":{"id":261918544,"uuid":"885716348","full_name":"brlin-tw/pivot-submodule-git-dir","owner":"brlin-tw","description":"Fix problems derived from the Git submodules' \".git\" directory not being the real Git repository directory.","archived":false,"fork":false,"pushed_at":"2024-11-09T14:41:21.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T08:45:44.836Z","etag":null,"topics":["git","git-submodules","utility"],"latest_commit_sha":null,"homepage":"https://gitlab.com/brlin/pivot-submodule-git-dir","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brlin-tw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/AGPL-3.0-or-later.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-09T07:42:32.000Z","updated_at":"2024-11-09T14:33:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"031ec963-e77b-4769-9324-9f94c4467062","html_url":"https://github.com/brlin-tw/pivot-submodule-git-dir","commit_stats":null,"previous_names":["brlin-tw/pivot-submodule-git-dir"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2Fpivot-submodule-git-dir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2Fpivot-submodule-git-dir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2Fpivot-submodule-git-dir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2Fpivot-submodule-git-dir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brlin-tw","download_url":"https://codeload.github.com/brlin-tw/pivot-submodule-git-dir/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243784100,"owners_count":20347409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","git-submodules","utility"],"created_at":"2024-11-21T16:21:38.724Z","updated_at":"2026-05-19T11:06:59.709Z","avatar_url":"https://github.com/brlin-tw.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The pivot-submodule-git-dir utility\n\nFix problems derived from the Git submodules' \".git\" directory not being the real Git repository directory.\n\n\u003chttps://gitlab.com/brlin/pivot-submodule-git-dir\u003e  \n[![The GitLab CI pipeline status badge of the project's `main` branch](https://gitlab.com/brlin/pivot-submodule-git-dir/badges/main/pipeline.svg?ignore_skipped=true \"Click here to check out the comprehensive status of the GitLab CI pipelines\")](https://gitlab.com/brlin/pivot-submodule-git-dir/-/pipelines) [![GitHub Actions workflow status badge](https://github.com/brlin-tw/pivot-submodule-git-dir/actions/workflows/check-potential-problems.yml/badge.svg \"GitHub Actions workflow status\")](https://github.com/brlin-tw/pivot-submodule-git-dir/actions/workflows/check-potential-problems.yml) [![pre-commit enabled badge](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white \"This project uses pre-commit to check potential problems\")](https://pre-commit.com/) [![REUSE Specification compliance badge](https://api.reuse.software/badge/gitlab.com/brlin/pivot-submodule-git-dir \"This project complies to the REUSE specification to decrease software licensing costs\")](https://api.reuse.software/info/gitlab.com/brlin/pivot-submodule-git-dir)\n\n## The problem\n\nGit submodules can't be easily mounted into a VM or container without breaking the Git functionality within the VM or container.\n\n## The workaround\n\nThe utility program provided by this solution swaps the actual Git repository directory of the submodule back to the \".git\" directory entry of the submodule worktree, while maintaining a symbolic link from the original location to maintain functionality of basic Git operations(commit/log).\n\n## Limitation\n\nNote that as Git itself isn't aware of the change the submodule will become broken when path-related changes are made to the submodule, we expect the user to aware of this limitation and interact with it accordingly.\n\n## Installatioon\n\nFollow the following instructions to install the product:\n\n1. Download the release archive of the product from [the Releases page](https://gitlab.com/brlin/pivot-submodule-git-dir/-/releases).\n1. Extract the release archive using your preferred archive manipulation application/program.\n1. Install [the pivot-submodule-git-dir program](pivot-submodule-git-dir) to the .local/bin sub-directory of your home directory, ensure the installed program has executable Unix file permission set.\n1. Ensure the \"${HOME}/.local/bin\" directory is in your command search PATHs.\n\n## Usage\n\nFollow the following instructions to use the product:\n\n1. Launch your preferred text terminal.\n1. Change the working directory to the submodule worktree directory you wish to operate on.\n1. Run the following command to start the operation:\n\n    ```bash\n    pivot-submodule-git-dir\n    ```\n\n## Licensing\n\nUnless otherwise noted(individual file's header/[REUSE.toml](REUSE.toml)), this product is licensed under [the 3.0 version of the GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.en.html), or any of its more recent versions of your preference.\n\nThis work complies to [the REUSE Specification](https://reuse.software/spec/), refer to the [REUSE - Make licensing easy for everyone](https://reuse.software/) website for info regarding the licensing of this product.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrlin-tw%2Fpivot-submodule-git-dir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrlin-tw%2Fpivot-submodule-git-dir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrlin-tw%2Fpivot-submodule-git-dir/lists"}