How to convert a normal Git repository to a bare one?
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
A Git repository can exist in either a non-bare or bare format. A non-bare repository is a working directory with a full checked-out version of the project in its current state, usually where development occurs. A bare repository, on the other hand, lacks a working directory and contains only the Git data. Bare repositories are typically used for sharing or collaborating, particularly in remote repositories.
Below is a comprehensive guide on how to convert a normal Git repository into a bare one.
Understanding the Differences
Non-Bare Repository
- Contains both a
.gitdirectory and the working files. - Developers work directly in this repository, frequently committing and pushing changes.
Bare Repository
- Contains only the versioned data in the repository.
- Lacks a working directory, making it ideal for sharing and collaboration.
- This is the type of repository GitHub or GitLab uses for remote hosting.
Conversion to a Bare Repository
Converting a non-bare repository into a bare one involves creating a new repository that contains only the .git data and none of the working files. Below is a step-by-step process to achieve this conversion.
Prerequisites
- Ensure you have Git installed (
git --versionto verify). - Access to the local non-bare Git repository you wish to convert.
Conversion Steps
- Navigate to the Non-Bare Repository's DirectoryOpen your terminal or command prompt:
- Backup: Always take a backup of your non-bare repository before conversion to avoid any data loss.
- Permissions: When setting permissions on a bare repository, ensure that write access is restricted appropriately to prevent unauthorized modifications.
- If the bare repository is intended for collaboration, consider setting up SSH access or a secure location on a server or an online hosting service.
- Ensure that all collaborators update their remotes to point to the new location of the bare repository, if applicable.
- If you encounter issues with rights or accessing the repository after conversion, verify that directory permissions are correctly set, and the remote URL is configured properly.

