Remote cơ bản: kết nối repo local với server
Git Remotes Basics
Git là phân tán nên repo trên máy bạn hoàn toàn độc lập. Nhưng để cộng tác collaborate với người khác, bạn cần một bản sao chung trên server mà mọi người cùng đẩy code lên và kéo về. Bản sao đó gọi là remote.
Repo local và repo remote
Khi bạn git init hay git clone, bạn có một repo local nằm trên ổ đĩa của mình — đủ lịch sử, commit được offline. Một repo remote là bản sao của repo đó nằm trên một server (GitHub, GitLab, Bitbucket, hoặc server nội bộ).
Điểm cần nhớ: remote chỉ là một repo Git khác mà bạn đã đăng ký một đường dẫn để trao đổi commit với nó. Git không tự động đồng bộ — bạn chủ động push để gửi và fetch/pull để nhận.
Remote là gì
Một remote gồm hai phần: một tên ngắn (alias) và một URL. Tên ngắn để bạn gõ cho gọn thay vì nhập URL dài mỗi lần. Tên remote mặc định khi clone là origin.
# Clone tự động tạo remote tên "origin" trỏ tới URL đã clone
git clone https://github.com/user/repo.git
URL có thể theo HTTPS (https://...) hoặc SSH (git@github.com:user/repo.git). Cùng một remote, chỉ khác cách xác thực.
Thêm và xem remote
Nếu bạn bắt đầu bằng git init (chưa có remote nào), bạn tự thêm bằng git remote add:
# Thêm remote tên origin trỏ tới repo trên GitHub
git remote add origin https://github.com/user/repo.git
# Xem danh sách remote kèm URL (fetch và push)
git remote -v
Kết quả git remote -v sẽ in ra tên remote cùng URL cho cả thao tác fetch lẫn push:
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
Một repo có thể có nhiều remote. Ví dụ phổ biến: origin là fork của bạn, còn upstream là repo gốc (sẽ học ở bài fork & Pull Request).
Các lệnh quản lý remote thường dùng
| Lệnh | Tác dụng |
|---|---|
git remote add <ten> <url> | Thêm một remote mới |
git remote -v | Liệt kê remote kèm URL |
git remote rename <cu> <moi> | Đổi tên remote |
git remote remove <ten> | Xóa một remote |
git remote set-url <ten> <url> | Đổi URL của remote (ví dụ HTTPS sang SSH) |
git remote show <ten> | Xem chi tiết: nhánh, tracking |
Xóa remote không xóa code
git remote remove origin chỉ gỡ kết nối tới server, không đụng tới commit hay file trong repo local của bạn. Bạn vẫn giữ full lịch sử.
HTTPS hay SSH?
HTTPS dễ bắt đầu (chỉ cần username/token), hợp khi sau firewall. SSH tiện hơn khi làm việc lâu dài vì không phải nhập token mỗi lần — bạn cấu hình key một lần. Đổi qua lại bằng git remote set-url.
Trọng tâm thi
Remote = tên ngắn + URL trỏ tới một bản sao repo trên server. origin là tên mặc định khi git clone. Dùng git remote add để thêm, git remote -v để xem. Git không tự đồng bộ — bạn phải chủ động push/fetch.
Tóm tắt
- Repo local nằm trên máy bạn; remote là bản sao trên server để cộng tác.
- Remote gồm một tên ngắn (alias) và một URL (HTTPS hoặc SSH).
originlà tên remote mặc định màgit clonetự tạo.git remote add <ten> <url>thêm remote;git remote -vxem danh sách kèm URL.- Một repo có thể có nhiều remote (ví dụ
originvàupstream). - Git không tự đồng bộ — bạn chủ động push để gửi, fetch/pull để nhận.