Mọi thứ chúng ta đã học cho đến giờ - từ commit, branch, đến merge - đều diễn ra trên local. Tuy nhiên, sức mạnh thực sự của Git nằm ở khả năng cộng tác. Để làm việc cùng người khác, bạn cần biết cách đồng bộ dữ liệu với Remote Repository. Bài học này sẽ giải thích cơ chế hoạt động đằng sau sự kết nối đó.
Git sử dụng các "con trỏ" đặc biệt gọi là remote references để ghi nhớ trạng thái của các branch đang nằm trên server tại lần đồng bộ gần nhất.
Hãy coi những con trỏ này giống như những chiếc bookmark (dấu trang). Chúng đánh dấu vị trí "đỉnh" (commit mới nhất) của nhánh trên remote repository mà local đã biết.
Đặc điểm: Bạn không thể tự ý sửa đổi chúng như các nhánh thông thường. Chúng chỉ tự động cập nhật khi bạn thực hiện các thao tác đồng bộ như fetch, push, hoặc pull.
Khi một nhánh tồn tại ở cả remote và local, và có một remote reference được dùng để liên kết hai nhánh này lại với nhau, ta gọi nhánh đó là remote tracking branch.
Vì bản chất các nhánh trong Git chỉ là các con trỏ trỏ đến các commit, nên trong thực tế, bạn sẽ thường thấy mọi người sử dụng các thuật ngữ như remote reference, remote branch và remote tracking branch với ý nghĩa tương đương.

Các remote reference thường có cấu trúc tên như sau:
<remote-name>/<branch-name>
Ví dụ:
origin/main
Hãy cùng phân tích cái tên này:
Phần đầu tiên (origin): là remote repository cụ thể nơi nhánh đó đang "sống". Theo mặc định, Git đặt tên cho bản sao trên server là origin, đó là lý do bạn thường xuyên thấy cái tên này.
Phần thứ hai (main): là tên của branch nằm trong remote repository mà remote reference đang theo dõi. Trong ví dụ này, chúng ta thấy remote reference đang theo dõi branch main của remote repository.
Giả sử bạn đã có một local repository trên máy tính và muốn đẩy nó lên GitHub để chia sẻ với người khác hoặc để backup. Dưới đây là các bước chi tiết:
Truy cập https://github.com và đăng nhập vào tài khoản của bạn.
Nhấn vào biểu tượng "+" ở góc trên bên phải, sau đó chọn "New repository".
Điền thông tin cho repository mới:
Nhấn nút "Create repository".
Sau khi tạo repository trên GitHub, bạn sẽ thấy một trang hướng dẫn với các lệnh. Vì bạn đã có local repository, hãy chọn phần "...or push an existing repository from the command line".
Mở Terminal (hoặc Git Bash trên Windows) và chạy các lệnh sau:
git remote add origin https://github.com/username/repository-name.git
git branch -M main
git push -u origin main
Hãy cùng phân tích từng lệnh:
git remote add origin ...: Thêm một remote repository có tên là origin (tên mặc định) và trỏ đến URL của repository vừa tạo trên GitHub.git branch -M main: Đảm bảo nhánh hiện tại của bạn có tên là main (nếu chưa phải).git push -u origin main: Đẩy toàn bộ commit từ nhánh main lên remote repository origin. Flag -u (hoặc --set-upstream) thiết lập liên kết giữa nhánh local main và remote origin/main, giúp các lần push sau chỉ cần gõ git push.Sau khi chạy các lệnh trên, bạn có thể kiểm tra lại bằng cách:
git remote -v
Lệnh này sẽ hiển thị danh sách các remote repository đã được cấu hình. Bạn sẽ thấy origin trỏ đến URL của repository trên GitHub.
Bây giờ, mỗi khi bạn thực hiện commit mới trên local và muốn chia sẻ lên GitHub, chỉ cần chạy:
git push
Git sẽ tự động biết đẩy lên origin/main nhờ mối liên kết đã được thiết lập trước đó.
Git sử dụng remote references để ghi nhớ trạng thái của các branch đang nằm trên remote repository. Khi bạn thấy origin/main, hãy hiểu rằng: "Đây là vị trí của branch main trên remote repository origin vào lần cuối cùng mình liên lạc với nó."
Việc tạo remote repository trên Github cũng khá đơn giản, gồm các bước: Tạo repository mới → Kết nối local repository với remote → Xác nhận kết nối thành công.
Tiếp theo: Cấu hình SSH