Learn/Review topics below and more using Rust first.
- HTTP Server (TCP, Sockets, headers, request, response, concurrent connections, persistent connections, ...)
- SQLite (SQL syntax, B-tree, table scan, indexe, ...)
- Git
- Interpreter (ASTs, tree-walk interpreters, tokenization, ...)
- Shell (REPL, POSIX compliance, parsing shell commands, executing programs, ...)
- Uses a temporary directory for backups
- Provides a way to restore the
.gitdirectories after you've pushed to GitLab/GitHub
This improved script provides a complete workflow for managing nested Git repositories. Here's the recommended process:
-
Backup and remove
.gitdirectories before pushing to GitLab/GitHub:./manage_nested_git_repos.sh backup --all
-
Add files to your main repository and push:
git add . git commit -m "Add project files" git push origin main
-
Restore the
.gitdirectories after pushing:./manage_nested_git_repos.sh restore
-
Clean up temporary backups (optional):
./manage_nested_git_repos.sh cleanup
The script:
- Uses
/tmpfor temporary backups - Creates a mapping file to track original locations
- Provides separate commands for backup, restore, and cleanup
- Handles both individual directories and all nested repos
This approach lets you maintain your local Git repositories while pushing a clean version to GitLab/GitHub without submodule complications.