Managing Work and Personal Git Configurations on the Same Laptop

3 min read

Engineers often work on both office projects and personal projects on the same machine. A common challenge in this setup is handling multiple Git identitiesโ€”for example, using a company Git account globally while ensuring personal projects use a personal Git account.

This blog explains how to isolate personal Git configuration without disturbing an existing corporate (global) Git setup.


Problem Statement

On a work laptop:

  • Git is already configured globally for a company (e.g., XYZ Office).

  • The engineer wants to create projects that:

    • Use a different Git username and email

    • Push to a different GitHub/GitLab account

    • Do not interfere with the office Git configuration


How Git Configuration Works

Git applies configuration in the following order (lowest to highest priority):

  1. System-level config

  2. Global config (~/.gitconfig)

  3. Local (repository-level) config (.git/config)

๐Ÿ‘‰ The local repository config always overrides global settings.
This allows us to safely use different identities per project.


This approach is ideal when you want fine-grained control over individual projects.

Step 1: Create a Personal Projects Directory

mkdir ~/personal-projects cd ~/personal-projects

Step 2: Initialize a Git Repository

git init

Step 3: Configure Personal Git Identity (Local Only)

git config user.name "John Doe" git config user.email "johndoe@email.com"

This configuration applies only to this repository.

Step 4: Verify the Configuration

git config --list --local

You should see your personal name and email, even though the global config is still set to the office account.

Step 5: Add Your Personal Remote Repository

git remote add origin git@github.com:yourusername/yourrepo.git


Solution 2: Automatically Apply Personal Git Config to a Folder (Advanced)

If you maintain multiple personal repositories, Git supports conditional configuration using includeIf.

Step 1: Create a Personal Git Config File

touch ~/.gitconfig-personal

Add the following:

[user] name = John Doe email = johndoe@email.com


Step 2: Update Global Git Config

Edit your global config:

git config --global --edit

Add:

[includeIf "gitdir:~/personal-projects/"] path = ~/.gitconfig-personal

๐Ÿ“Œ Now, any Git repository created inside ~/personal-projects/ will automatically use your personal Git identity.


SSH Considerations

If both your office and personal accounts are hosted on the same Git provider (e.g., GitHub), you should use:

  • Separate SSH keys

  • SSH config aliases

This prevents authentication conflicts and accidental pushes to the wrong account.


Recommendation Summary

Use CaseRecommended Approach
Few personal repositoriesLocal repo config
Many personal repositoriesConditional Git config
Same Git provider for work & personalSeparate SSH keys

Conclusion

By leveraging Gitโ€™s configuration hierarchy and conditional includes, engineers can:

  • Safely separate work and personal Git identities

  • Avoid accidental commits with the wrong email

  • Maintain clean and professional version control practices

This setup is lightweight, scalable, and production-proven.