Khác nhau giữa Pull và Pull Request trong Git?

Khi làm việc với Git em có gặp hai khác niệm Pull và Pull Request nhưng không rõ hai thằng này khác nhau như thế nào. Bác nào rành về thằng này giải thích giùm em giữa PullPull Request khác nhau như thế nào với ạ?

Được hỏi 1 năm trước
Bình chọn bởi: Hằng Đỗ, Minh Tâm, Truc Le, Khuê Kana, Diệu Yến, Lê Trung, Trung Quân, Tân Lê, Hang Pham, Tram Anh, Huyền Cano, Minh Tran, Thuy Linh, Hanh Nguyen, Trần Anh, Bảo Davis, Khánh Duy, Quỳnh Anh, Hải Phạm, Huyền Cool, Lê Anh, Duc Otore, Bơ Heoboo, Hanh Kute, Linh Vũ, Đăng Duy, Hana Pham, Phuong Jenny, Duan Le

Để hiểu rõ Pull và Pull Request thì bạn cần hiểu về quy trình làm việc của Git đối với trường hợp nhiều lập trình viên tham gia vào dự án.

Git Pull

Câu lệnh git pull thực ra là viết tắt của git pull origin master. Trong đó:

  • origin là tên của kho chứa từ xa (hay remote repository).
  • master là tên của nhánh trên kho chứa từ xa. Một kho chứa có thể có nhiều nhánh khác nhau.

Để liệt kê các kho chứa từ xa bạn có thể dùng câu lệnh sau:

$ git remote -v

Để liệt kê cách nhánh của các kho chứa:

$ git branch -a

Về bản chất khi chạy câu lệnh git pull origin master thực sự là bạn đang sử dụng hai câu lệnh phía sau:

$ git fetch origin master

và:

$ git merge origin master

Câu lệnh git fetch origin master sẽ truy vấn thông tin của kho chứa từ xa trên máy chủ remote và sau đó kéo về máy local những thay đổi này. Tiếp đó câu lệnh trên sẽ thực hiện việc so sánh những thay đổi mới kéo về máy local và hiển thị thông tin.

Câu lệnh git merge orign master sẽ gộp những thay đổi mới kéo về (dùng câu lệnh git fetch ở trên) từ máy chủ từ xa với nhánh hiện tại trên máy local.

Git Push

Khi tạo những thay đổi cần thiết ở máy local và sẵn sàng để tạo commit để lưu lại những thay đổi này trong lịch sử của Git.

Trước khi tạo commit bạn cần thông báo với Git rằng thay đổi ở những tập tin nào trên máy sẽ được thêm vào ở commit. Để làm điều này bạn sử dụng câu lệnh:

$ git add file_1 file_2...

Trường hợp bạn muốn thêm tất cả thay đổi đã tạo ra trên máy bạn sử dụng tuỳ chọn --all như sau:

$ git add --all .

Tiếp theo bạn tạo commit bằng câu lệnh:

$ git comit -m "Thông điệp commit"

Pull Push

Sau khi tạo commit bằng câu lệnh git commit thì thực tế commit của bạn mới chỉ được lưu lại ở máy local. Để những thay đổi này được đấy lên máy chủ từ xa của Git (hay remote repo) thì bạn cần sử dụng câu lệnh git push như sau:

$ git push origin master

Trong đó:

  • origin là tên của kho chứa từ xa mà bạn muốn đẩy commit lên.
  • master là tên nhánh chứa commit bạn đã tạo ra.

Pull Request

Thông thường khi làm với Git mỗi lập trình viên sẽ tạo một branch mới khác với master để phát triển một tính năng mới. Giả sử nhánh mà lập trình viên tạo ra để phát triển tính năng có tên là my_feature. Trong trường hợp này sau khi đẩy commit trên nhánh này trên nhánh tương ứng my_feature ở kho chứa từ xa origin thì để các lập trình viên khác có thể kéo về được commit này thì quản trị viên trên máy chủ từ xa cần thực hiện việc gộp commit ở nhánh my_feature về nhánh master.

Pull request là một yêu cầu gửi tới quản trị viên kho chứa từ xa gộp commit mới được tạo ra từ nhanh my_feature về nhánh master để các lập trình viên khác có thể pull về được.

Trả lời 11 giờ trước

Thêm Trả Lời