Skip to main content

Command Palette

Search for a command to run...

Git & Git repository cho dự án cá nhân và dự án công ty trên cùng một máy tính

Published
3 min read

Hello! I'm Zu.Doan

Ở bài viết này mình sẽ chia sẻ một vấn đề đầu tiên mình gặp phải khi triển khai làm một dự án cá nhân. Vấn đề sẽ phát sinh nếu hoàn cảnh của bạn cũng như mình:

  • Mình sử dụng cùng 1 máy tính để làm việc (dự án của công ty + dự án cá nhân).
  • Mình sử dụng 2 account Gitlab khác nhau cho 2 dự án đó.

Vấn đề là gì? Các bạn đã biết, liên quan đến vấn đề clone code bằng SSH từ Gitlab thì chúng ta phải tạo một SSH key ở máy tính của chúng ta và setting nó vào trong Gitlab account (như hình mô tả)

GL_setting_ssh.png

Tuy nhiên như đã nói ở trên, mình đang muốn sử dụng 2 tài khoản khác nhau cho 2 dự án khác nhau trên Gitlab, thì đến đây vấn đề phát sinh là không thể sử dụng cùng 1 SSH key trên 2 accout Gitlab khác nhau.

Vậy ta sẽ tạo thêm một SSH key nữa ở máy local của chúng ta?

Chính xác! Chúng ta cần tạo thêm 1 SSH key nữa ở trên máy tính của chúng ta và thiết lập nó ở Gitlab account 2. Tưởng chừng như kèo đã thơm, mình quay lại git clone project 2 đó về, nhưng kết quả là không clone về được. Nguyên nhân là do trong .ssh/config chỉ có một host được khai báo (như hình dưới)

ssh_config2.png

Khi này mình nhận ra là .ssh/config đang chỉ set up 1 host và sử dụng 1 SSH key (chính là cái đang sử dụng cho Gitlab của dự án công ty). Do đó mình cần tạo thêm 1 khối Host trong file .ssh/config để chỉ định host cho dự án cá nhân. Và đây là kết quả

ssh_config1.png

Bạn có thể thấy, với mỗi SSH key ta sẽ có 1 host Gitlab tương ứng. Và từ đó mỗi lần clone code về thì mình cũng cần lưu ý là mình đang clone project từ Gitlab account nào để set lại host tương ứng. Dưới đây là ví dụ:

Đây là link để clone mà mình copy từ gitlab: git@gitlab.com:msec1/api-shops.git

Đây là link mình đã edit cho phù hợp với ssh config: git@gitlab.com-individual:msec1/api-shops.git

Còn khi mình cần clone project của công ty về thì mình sẽ sử dụng: git@gitlab.com-com:{group}/{project}.git

Note: Mình nghĩ nó sẽ tương tự cho các git repository khác (Github, Bitbucket,...). Tất nhiên là mình chưa thử với các git repo khác đó, nên có gì chưa đúng mong các bạn góp ý cho mình ở comment nhé.

Đến đây chắc các bạn cũng hình dung ra vấn đề mà mình đã gặp phải, hi vọng bài viết này có thể giúp ích được các bạn.

Thank everyone! Bye2 :D

28 views

More from this blog

zujs

35 posts