https://github.com/markbattistella/gitrc
Easily change between `gitconfig` setups without destroying your old settings
https://github.com/markbattistella/gitrc
git gitconfig github-config rc
Last synced: about 1 month ago
JSON representation
Easily change between `gitconfig` setups without destroying your old settings
- Host: GitHub
- URL: https://github.com/markbattistella/gitrc
- Owner: markbattistella
- License: mit
- Created: 2021-07-13T01:08:01.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-07-14T20:18:43.000Z (almost 5 years ago)
- Last Synced: 2025-10-31T08:43:50.138Z (8 months ago)
- Topics: git, gitconfig, github-config, rc
- Language: JavaScript
- Homepage:
- Size: 15.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# gitrc
easily switch between `.gitconfig` files
  
---
[](https://www.paypal.me/markbattistella/6AUD) [](https://www.buymeacoffee.com/markbattistella)
---
## Overview
If you (like me) need to travel between home and the office that have different network settings you'll know how annoying setting and unsetting config settings can be - especially if you try and push and it fails.
It works really great if one `.gitconfig` needs a proxy, and the other doesn't.
> Major credit to [@deoxxa/npmrc](https://github.com/deoxxa/npmrc) for inspiration and setting a blueprint
## Installation
1. Install the module from `npm`
```sh
npm i @markbattistella/gitrc -g
```
## Usage
```sh
$ gitrc -h
Usage:
gitrc List all profiles
gitrc [name] Switch to profile
gitrc -n [name] Create a new profile
gitrc -d [name] Delete the profile
gitrc -h Display this screen
```
### Initialisation
Calling `gitrc` without arguments creates an `~/.gitconfigs/` directory if it doesn't exist, and copies your current `~/.gitconfig` as the 'default' .gitconfig profile.
### Create a new config file
```sh
gitrc -n configname
```
A blank config will be created where you can have custom settings for your `.gitconfig`
```sh
git config --global user.name "Mark Battistella"
git config --global user.email markb@example.com
```
You can then add whatever other configuration settings you need. Please [refer to the manual](https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration) for help.
### List available config files
```sh
Available .gitconfig files:
> home
work-proxy
```
### Switch to a specific .gitconfig
```sh
gitrc work-proxy
Activating .gitconfig 'work-proxy'
```
### Delete a specific .gitconfig
```sh
gitrc -d work-proxy
Deleting .gitconfig file 'work-proxy'
Current active config is being deleted.
Remember to set a new one before use.
```
## Note For Windows Users
You may have to run `gitrc` in a shell (cmd, PowerShell, Git Bash, etc) with
elevated (Administrative) privileges to get it to run.
## License
MIT - a copy is included with the source.
## Contact
- GitHub ([markbattistella](https://github.com/markbattistella))
- Twitter ([@markbattistella](http://twitter.com/markbattistella))
## Awesome People
Again I want to thank:
- Conrad ([github](https://github.com/deoxxa/)) - *author of npmrc*
And all the people that helped on that project:
- Jaime "the binary wizard" Pillora ([github](https://github.com/jpillora))
- Tim "two hands" Oxley ([github](https://github.com/timoxley))
- Jakob "fastest blur in the west" Krigovsky ([github](https://github.com/SonicHedgehog))
- Rod "the destroyer" Vagg ([github](https://github.com/rvagg))
- Eugene "ludicrous gibs" Asiedu ([github](https://github.com/ngenerio))
## Contributing
1. Clone the repo:
`git clone https://github.com/markbattistella/gitrc.git`
1. Create your feature branch:
`git checkout -b my-feature`
1. Commit your changes:
`git commit -am 'Add some feature'`
1. `Push` to the branch:
`git push origin my-new-feature`
1. Submit the `pull` request