Skip to content

Commit

Permalink
Explain how to deal with exploded git submodules
Browse files Browse the repository at this point in the history
  • Loading branch information
jieyouxu committed Dec 2, 2024
1 parent 3d042d4 commit aa7a997
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/git.md
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,27 @@ $ git submodule foreach git reset --hard

and then try `git submodule update` again.

Unfortunately sometimes your local git submodules configuration can become
completely messed up for some reason.

### Overcoming `fatal: not a git repository: <submodule>/../../.git/modules/<submodule>`

Sometimes, for some forsaken reason, you might run into

```text
fatal: not a git repository: src/gcc/../../.git/modules/src/gcc
```

In this situation, for the given submodule path, i.e. `<submodule_path> =
src/gcc` in this example, you need to:

1. `rm -rf <submodule_path>/.git`
2. `rm -rf .git/modules/<submodule_path>/config`
3. `rm -rf .gitconfig.lock` if somehow the `.gitconfig` lock is orphaned.

Then do something like `./x fmt` to have bootstrap manage the submodule
checkouts for you.

## Ignoring commits during `git blame`

Some commits contain large reformatting changes that don't otherwise change functionality. They can
Expand Down

0 comments on commit aa7a997

Please sign in to comment.