Trong các bài học trước, bạn đã làm quen với origin - tên gọi mặc định cho remote repository. Tuy nhiên, trong môi trường làm việc thực tế, đặc biệt là các dự án lớn hoặc mã nguồn mở, việc một local repository kết nối với nhiều remote cùng lúc là điều rất bình thường.
Bài học này sẽ giúp bạn hiểu cách quản lý và làm việc hiệu quả với nhiều remote repository.
Lệnh git remote add origin <url> mà bạn thường dùng chỉ đơn giản là đặt cái tên origin cho địa chỉ URL kia. Bạn hoàn toàn có thể đặt bất kỳ tên nào bạn muốn, ví dụ github, gitlab, company-server,...
Việc đặt tên gợi nhớ (semantic naming) giúp bạn dễ dàng nhận biết mục đích của remote đó:
Để xem dự án của bạn đang kết nối với những remote nào, hãy sử dụng lệnh:
git remote -v
Cờ -v (verbose) sẽ hiển thị chi tiết cả URL fetch (nơi lấy code về) và URL push (nơi đẩy code lên).
Kết quả ví dụ:
origin https://github.com/your-username/my-project.git (fetch)
origin https://github.com/your-username/my-project.git (push)
Dưới đây là hai kịch bản phổ biến nhất mà bạn sẽ cần thêm nhiều remote.
Bài học trước đã giải thích chi tiết quy trình Forking, trong đó bạn đã thêm remote origin. Nhưng trong lúc bạn thực hiện thay đổi, bạn cần lấy những thay đổi mới nhất từ repository gốc về. Vì vậy, bạn cần thêm remote upstream để trỏ tới repository gốc.
Lúc này, bạn có 2 remote:
origin: Trỏ tới repo của BẠN (để bạn push code lên và tạo Pull Request).upstream: Trỏ tới repo GỐC (để bạn kéo code mới nhất về, tránh bị lạc hậu).Cách thực hiện:
# 1. Thêm remote upstream
git remote add upstream https://github.com/original-owner/repo-name.git
# 2. Kiểm tra lại
git remote -v
# Output sẽ có cả origin và upstream
# origin https://github.com/your-username/repo-name.git (fetch)
# origin https://github.com/your-username/repo-name.git (push)
# upstream https://github.com/original-owner/repo-name.git (fetch)
# upstream https://github.com/original-owner/repo-name.git (push)
Trong các công ty, mã nguồn thường được triển khai lên nhiều môi trường khác nhau để kiểm thử trước khi đến tay người dùng thật. Git có thể được dùng để đẩy code trực tiếp lên các server này.
Ví dụ, bạn có thể cần cấu hình thêm 2 remote là staging (môi trường kiểm thử) và production (môi trường thật).
Cách thực hiện:
# Thêm remote cho môi trường Staging
git remote add staging https://git.heroku.com/my-app-staging.git
# Thêm remote cho môi trường Production
git remote add production https://git.heroku.com/my-app-production.git
Khi muốn deploy bản build mới lên staging, bạn chỉ cần chạy:
git push staging main
Việc sử dụng nhiều remote giúp quy trình làm việc trở nên linh hoạt và chuyên nghiệp hơn. Hãy nhớ luôn dùng lệnh git remote -v để kiểm soát các kết nối của mình.
Và đó là tất cả những gì bạn đã được học cho chương này. Hãy cùng làm bài quiz để kiểm tra kiến thức nhé!