HocTotGit.io

Làm việc nhóm (Collaboration)
  • Thuật ngữ trong collaboration
  • Lý thuyết về remote repository
  • Cấu hình SSH
  • Sử dụng nhiều SSH keys cho nhiều tài khoản
  • Quiz
  • Git clone
  • Git push
  • Git fetch
  • Git pull
  • Quiz
  • Remote branches
  • Feature branch workflow
  • Fork repository và open source
  • Làm việc với nhiều remote repository
  • Quiz
  • Tại sao code review quan trọng?
  • Code review vs PRs vs Merge Request
  • Quiz
Liên kết
Blog
Hỗ trợ

Email: work.lamsun@gmail.com

Yêu thích nền tảng

Hãy chia sẻ ý kiến của bạn

HocTotGit.io

© 2026 HocTotGit.

Git pull

1. Tổng quan

Đến nay, chúng ta đã thảo luận về các lệnh cơ bản cần thiết để cộng tác trong Git: clone, push và fetch. Nhiều kỹ sư cho rằng chỉ cần ba lệnh này là đã đủ dùng.

Lệnh pull thực chất không thêm bất kỳ chức năng mới nào mà chúng ta chưa biết. Thay vào đó, nó gói gọn hai thao tác thường diễn ra liên tiếp nhau: tải các thay đổi từ remote về, và tích hợp những thay đổi đó vào local repository.

Nói cách khác: pull = fetch + merge.

Lưu ý:

Điểm trừ lớn của việc sử dụng pull là bạn buộc phải chọn cách tích hợp các thay đổi trước khi thực sự được xem xét chúng ở local.


Những người mới làm quen với Git có thể bối rối vì lệnh pull có thể tự động tạo ra các merge commit. Hãy chắc chắn bạn đã quen thuộc với cả fetching và merging thủ công trước khi đưa pull vào quy trình làm việc chính thức.


2. Cách sử dụng

2.1. Lệnh Pull

git pull <tên-remote> <tên-branch> <tùy-chọn-merge>

Ví dụ:

git pull origin main --ff-only

Ví dụ trên tương đương với việc chạy lần lượt hai lệnh sau theo thứ tự:

git fetch origin main
git merge origin/main --ff-only

Mặc định: Nếu bạn không chỉ định tên remote repository, Git sẽ tự động hiểu là bạn muốn fetch lên origin. Nếu bạn không chỉ định tên branch, Git sẽ mặc định chọn branch mà bạn đang đứng.

2.2. Cấu hình

Bạn có thể điều khiển cách pull hoạt động thông qua các tùy chọn merge:

--ff-only: (mặc định) Chỉ tích hợp các thay đổi nếu có thể thực hiện fast-forward merge. Nếu cả local và remote repository đều có các commit mới, tùy chọn này sẽ ngăn pull tự tạo merge commit và sẽ hủy bỏ thao tác ngay sau khi fetching xong.

--ff: Tạo một merge commit nếu không thể fast-forward. Trong trường hợp này, Git sẽ hiện ra cửa sổ yêu cầu bạn nhập merge commit message trước khi hoàn tất.

--rebase: Việc thêm tùy chọn --rebase sẽ thay thế hành động merge bằng rebase để tích hợp thay đổi. Các thay đổi ở local của bạn sẽ được chuyển lên trên đầu các commit vừa tải về từ remote repository.

2.3. Thiết lập mặc định

Bạn có thể chạy một trong các lệnh sau để cài đặt flag mặc định cho pull. Sau khi cài, bạn chỉ cần gõ git pull mà không cần thêm tham số:

# Luôn dùng chế độ fast-forward only (khuyên dùng)
git config pull.ff only

# Luôn tạo merge commit nếu cần
git config pull.rebase false

# Luôn sử dụng rebase thay vì merge
git config pull.rebase true

Bạn đã hiểu được các câu lệnh cơ bản để làm việc giữa local và remote repository. Hãy cùng làm bài quiz để kiểm tra kiến thức nhé!

Tiếp theo: Quiz