DEV Community

Cover image for Multiple GitHub accounts on one laptop

Multiple GitHub accounts on one laptop

Simon Osipov on January 18, 2022

Imagine the next situation: You have only one laptop You have your personal GitHub account Your employer stores code on GitHub as well You need t...
Collapse
 
bobbyiliev profile image
Bobby Iliev

This is super handy! Very well explained!

Collapse
 
osipovsimon profile image
Simon Osipov

Thanks a lot!

Collapse
 
anthonyjdella profile image
Anthony

Thanks. What if you have 1 using GitHub and 1 using GitLab?
I'm guessing it's the same principle.

Collapse
 
osipovsimon profile image
Simon Osipov

No difference, but you will need to replace
insteadOf part with url pattern from GitLab (assuming this one is work)

Collapse
 
mfurmaniuk profile image
Michael

Very cool, I'm still a command line type person and having this would be great when I want to do some personal stuff but keep it in my own repos.

Collapse
 
jonrandy profile image
Jon Randy 🎖️

GUI clients like GitKraken also make this ridiculously easy

Collapse
 
osipovsimon profile image
Simon Osipov

IF you use GUI clients)
In my case, I am "one IDE" kinda guy, so I have terminal and VS Code. )

But thanks for the comment!

Collapse
 
harshitkumar31 profile image
Harshit Kumar

Works like a charm.

Collapse
 
jeff_codes profile image
Jeff Edmondson

Just make sure to change the remote "origin" url in the YOUR_PROJECT/.git/config file

[remote "origin"]
    url = git@github-work:... 
Enter fullscreen mode Exit fullscreen mode
Collapse
 
detzam profile image
webstuff

okay. You could've explained it better but...
So what you're saying is: you make those ssh files and in each project you create a .gitconfig and when you go all git add . / git commit -m"smthing" git push origin smthing .... IT WILL go to the correct repos?
OR you have to chnage your config email and username for each add/pull/push?

Collapse
 
osipovsimon profile image
Simon Osipov • Edited

No, sir. Sorry for that, will try to explain better.
You do this once:

  • You modify global config for ssh, so you have separate accounts for work and personal
  • You create working dir, where you will store all working repos
  • You modify global git config
  • You modify git config in repository you created step above

If you do clone, pull, push inside this repo, you will use WORK account automatically (no need to switch or any other things, just git pull/clone/push

If you clone/push/pull outside this repo - it will use PERSONAL account

So you dont need to modify gitconfig for every working repo. as long as you have
~/path/work_dir/repo1
~/path/work_dir/repo2
~/path/work_dir/repo3

Collapse
 
mrdt12 profile image

thanks, I usualy change .git/config? to add multiple branch, like github and azure