git push (Bài trước)
(Bài tiếp) Tag trong Git

Lệnh git pullgit fetch được dùng để cập nhật dữ liệu mới từ kho chứa ở remote về kho chứa local. Để thực hiện lệnh này tất nhiên bạn phải có kho chứa ở remote và local đã liên kết với nhau. Bạn cần hiểu về remote repository trước!

Lệnh git fetch

Lệnh git fetch tải về dữ liệu từ Remote Repo (kho chứa từ xa - trên server/dịch vụ lưu repo, các dữ liệu như các commit, các file, refs). Các dữ liệu này được lấy về và nó lưu vào kho chứa local (trong Repository - thư mục .git), nó không tác động gì đến thư mục đang làm việc (Working Directory - Workspace). Bạn dùng git fetch khi cần lấy dữ liệu từ remote để lưu trữ, theo dõi các commit người khác đã cập nhật lên server, để có được thông thông tin khác nhau giữa remote và local mà không ảnh hưởng đến luồng công việc bạn đang thực hiện

Kho chứa của bạn tên origin, tải về tất cả thông tin của nó từ remote:

git fetch origin

Hoặc

git fetch --all
git pull và fetch

Hình ảnh trực quan đường đi dư liệu của get fetch và git pull

Tải thông tin của một nhánh cụ thể, ví dụ master của remote origin

git fetch origin master

Sau khi tải về, để có thể khám phá sự khác biệt giữa local và remote bạn có thể xem trạng thái của thư mục làm việc, xem log của một nhánh local và log của nhánh remote ...

Ví dụ: đang làm việc trên master

git log --oneline origin/master # xem log nhánh master của remote origin
git log --oneline master        # xem log nhánh master của local origin
git status                      # xem log nhánh master của local origin

Sau khi kiểm tra sự khác biệt của nhánh giữa remote và local, bạn có thể đánh giá sự thay đổi của dữ liệu, từ đó có các hành động tiếp theo, có thể có vài tình huống:

Trường hợp 1: Thư mục làm việc ở trạng thái Clean (working tree clean - không có thay đổi dữ liệu, hoặc bạn đã commit các thay đổi nếu có). Để cập nhật dữ liệu mới tải kết hợp với Workspace.

git pull origin master  # phải có kết nối mạng để cập nhật hoặc
git merge origin/master # không cần kết nối mạng, cập nhật từ dữ liệu lấy về từ fetch

Trường hợp 2: Đang làm việc có sự thay đổi ở Workspace - để cập dữ liệu bạn cần thực hiện commit hoặc bỏ các thay đổi (để working tree clean) rồi thực hiện trường hợp 1

Các Video: Sử dụng Git, GitHub

Lệnh git pull

Lệnh git pull lấy về thông tin từ remote và cập nhật vào các nhánh của local repo (thực hiện lưu vào Repository tức .git và Workspace).

Thi hành lệnh:

git pull

Hoặc chỉ rõ remote

git pull origin

Git tải về thông tin từ remote và ngay lập tức merge cho nhánh đang làm việc. Lệnh git pull nó tương đương thi hành luôn hai lệnh git fetchgit merge

git fetch origin
git merge origin/master

Bạn có thể viết lại lịch sử commit của nhánh đang làm việc, cập nhật toàn bộ nhánh remote là base của nó thì thực hiện.

git pull --rebase origin

Đăng ký nhận bài viết mới
git push (Bài trước)
(Bài tiếp) Tag trong Git