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 Pull và Pull Request khác nhau như thế nào với ạ?
Guest
- 1970/01/01 Trả lờigiả sử nếu được thay từ commit phía bằng từ tiếng việt mình sẽ thay bằng từ gì là phù hợp nhất ạ . Em mới tìm hiểu git nên chưa rõ lắm , mong anh giải đđáp.
Guest
- 1970/01/01 Trả lờiĐể 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ủagit 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:
Để liệt kê cách nhánh của các kho chứ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:và:
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ệnhgit 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:
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:Tiếp theo bạn tạo commit bằng câu lệnh:
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ệnhgit push
như sau: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 ứngmy_feature
ở kho chứa từ xaorigin
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ánhmy_feature
về nhánhmaster
.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ánhmaster
để các lập trình viên khác có thể pull về được.Guest
- 1970/01/01 Trả lờicảm ơn tóm tắt 1 cách đầy đủ này, hehe