Chào anh em, hôm nay mình sẽ hướng dẫn anh em cách configure để làm việc với 2 account GitHub trên cùng 1 máy tính.
Bối cảnh
Mình có 1 máy tính công ty cấp cho và 2 account GitHub, 1 account công ty và 1 account cá nhân. Máy công ty làm việc với account công ty là đương nhiên rồi, nhưng thỉnh thoảng mình cũng muốn làm việc riêng với account cá nhân (có thể không tốt lắm). Và mình muốn lưu data, config cá nhân tách biệt nhất có thể.
Cách làm
Yêu cầu
- Máy tính hệ điều hành MacOS (Windows và Linux các bạn làm tương tự nhé)
- Có 2 account GitHub: 1 công ty và 1 cá nhân
- Biết cách thêm SSH key vào GitHub
Phần 1: Config SSH
Bước 1: Tạo ssh key cho tài khoản công ty. Mở terminal và chạy lệnh sau:
ssh-keygen
Key sẽ được lưu ở thư mục ~/.ssh/ với tên file là id_ed25519. Bạn có thể thay đổi nhiều thông số khác như loại key, tên file, passphrase... nhưng ở đây mình sẽ để mặc định để đơn giản nhất.
Bước 2: Mở account GitHub công ty lên và thêm ssh key vào.
Lưu ý: Bước 1 và Bước 2 ở trên mình nghĩ bạn đã làm rồi nên có thể bỏ qua nếu đã làm.
Bước 3: Mở (thêm nếu chưa có) file cấu hình ssh:
nano ~/.ssh/config
Thêm đoạn sau vào file:
Host github.com IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes
Bước 4: Tạo thư mục cá nhân để tách biệt data cá nhân như repos, ssh config, git config. Bạn có thể tạo ở bất kì đâu, nhưng mình lưu ở ~/personal
.
mkdir -p ~/personal
Bước 5: Tạo ssh key cho account cá nhân bằng cách chạy lệnh sau:
mkdir -p ~/personal/.ssh && ssh-keygen -f ~/personal/.ssh/id_ed25519
Bước 6: Mở account GitHub cá nhân lên và thêm ssh key vào.
Bước 7: Tạo file cấu hình ssh cho tài khoản cá nhân
nano ~/personal/.ssh/config
Thêm đoạn sau vào file:
Host github.com-personal HostName github.com IdentityFile ~/personal/.ssh/id_ed25519 IdentitiesOnly yes
Bước 8: Sửa file cấu hình ssh chính để include file cấu hình cá nhân
nano ~/.ssh/config
Thêm dòng sau vào đầu file:
Include ~/personal/.ssh/config
Bước 9: Xác nhận
Chạy lệnh sau nếu GitHub phản hồi username công ty thì ok.
ssh -T git@github.com
Chạy lệnh sau nếu GitHub phản hồi username cá nhân thì ok.
ssh -T git@github.com-personal
Phần 2: Config git
Mục đích: Để git sử dụng config cá nhân khi làm việc trong thư mục cá nhân.
Bước 1: Tạo file cấu hình git cho tài khoản cá nhân
nano ~/personal/.gitconfig
Thêm đoạn sau vào file (nhớ thay name và email của bạn) :
[user] name = <name cá nhân> email = <email cá nhân> [url "git@github.com-personal:"] insteadOf = git@github.com:
Bước 2: Sửa file cấu hình git chính để include file cấu hình cá nhân
nano ~/.gitconfig
Thêm dòng sau vào cuối file:
[includeIf "gitdir:~/personal/"] path = ~/personal/.gitconfig
Phần 3: Sử dụng
Làm việc công ty
Khi làm việc với tài khoản công ty, bạn chỉ cần thao tác clone, pull, push như bình thường, không cần thay đổi gì cả.
Làm việc cá nhân
Point
- Làm việc trong thư mục
~/personal
hoặc các thư mục con của nó. - Thay host
github.com
mặc định bằnggithub.com-personal
Ví dụ 1: Clone repo cá nhân
Để clone repo cá nhân username/repo
sử dụng lệnh:
git clone git@github.com-personal:username/repo.git
Sau khi clone xong, bạn có thể làm việc với repo như bình thường (pull, push...) mà không cần thay đổi gì cả.
Ví dụ 2: Thay đổi config cho repo đã tạo/clone trước đó
Thay đổi remote url bằng lệnh:
git remote set-url origin git@github.com-personal:username/repo.git
Kết luận
Vậy là mình đã hướng dẫn xong cách configure 2 tài khoản GitHub trên cùng 1 máy tính. Hy vọng bài viết sẽ giúp ích cho anh em trong việc quản lý nhiều tài khoản GitHub. Mình không giải thích quá chi tiết về các lệnh vì mình nghĩ anh em cũng khá rành về Git và GitHub rồi.
P/s: Ở đây mình cài đặt trên máy công ty, làm việc với account công ty là chính nên nếu bạn muốn làm ngược lại thì bạn chỉ cần đổi tên các file và các đoạn code là được.