GitHub là nơi mọi người xây dựng phần mềm. Hơn 83 triệu người sử dụng GitHub để khám phá, phân nhánh và đóng góp cho hơn 200 triệu dự án.
Bạn đang xem : git pull nhánh từ github

Git Pull
git pull
cập nhật chi nhánh làm việc cục bộ hiện tại của bạn và tất cả các chi nhánh theo dõi từ xa. Bạn nên chạy git pull
thường xuyên trên các nhánh mà bạn đang làm việc tại địa phương.
Nếu không có git pull
, (hoặc ảnh hưởng của nó,) chi nhánh cục bộ của bạn sẽ không có bất kỳ bản cập nhật nào có trên điều khiển từ xa.
git pull
Làm gì?
git pull
git pull
là một trong 4 thao tác từ xa trong Git. Nếu không chạy git pull
, kho lưu trữ cục bộ của bạn sẽ không bao giờ được cập nhật các thay đổi từ điều khiển từ xa. git pull
nên được sử dụng hàng ngày khi bạn tương tác với kho lưu trữ bằng điều khiển từ xa, ở mức tối thiểu. Đó là lý do tại sao git pull
là một trong những lệnh Git được sử dụng nhiều nhất.
git pull
và git fetch
git pull
, sự kết hợp của git fetch
+ git merge
, cập nhật một số phần của kho lưu trữ cục bộ của bạn với các thay đổi từ kho lưu trữ từ xa. Để hiểu điều gì được và không bị ảnh hưởng bởi git pull
, trước tiên bạn cần hiểu khái niệm về các nhánh theo dõi từ xa. Khi bạn sao chép một kho lưu trữ, bạn sao chép một nhánh đang hoạt động, main
và tất cả các nhánh theo dõi từ xa. git fetch
cập nhật các nhánh theo dõi từ xa. git merge
sẽ cập nhật chi nhánh hiện tại của bạn với bất kỳ cam kết mới nào trên chi nhánh theo dõi từ xa.
git pull
là cách phổ biến nhất để cập nhật kho lưu trữ của bạn.
Tuy nhiên, bạn có thể muốn sử dụng git fetch
để thay thế. Một lý do để làm điều này có thể là bạn mong đợi xung đột. Xung đột có thể xảy ra theo cách này nếu bạn có cam kết cục bộ mới và cam kết mới trên điều khiển từ xa. Giống như xung đột hợp nhất sẽ xảy ra giữa hai nhánh khác nhau, hai dòng lịch sử khác nhau này có thể chứa các thay đổi đối với các phần giống nhau của cùng một tệp. Nếu bạn thao tác git fetch
lần đầu tiên, quá trình hợp nhất sẽ không được bắt đầu và bạn sẽ không được nhắc giải quyết xung đột. Điều này giúp bạn linh hoạt để giải quyết xung đột sau này mà không cần kết nối mạng.
Một lý do khác mà bạn có thể muốn chạy git fetch
là để cập nhật lên tất cả các nhánh theo dõi từ xa trước khi mất kết nối mạng. Nếu bạn chạy git fetch
và sau đó cố chạy git pull
mà không có bất kỳ kết nối mạng nào, thì phần git fetch
của git thao tác kéo
sẽ không thành công.
Nếu bạn sử dụng git fetch
thay vì git pull
, hãy đảm bảo rằng bạn nhớ git merge
. Việc hợp nhất chi nhánh theo dõi từ xa vào chi nhánh của riêng bạn đảm bảo rằng bạn sẽ làm việc với bất kỳ bản cập nhật hoặc thay đổi nào.
Cách sử dụng git pull
Các cách sử dụng và tùy chọn phổ biến cho git pull
-
git pull
: Cập nhật chi nhánh làm việc cục bộ của bạn với các cam kết từ điều khiển từ xa và cập nhật tất cả các chi nhánh theo dõi từ xa. -
git pull --rebase
: Cập nhật nhánh làm việc cục bộ của bạn với các cam kết từ điều khiển từ xa, nhưng viết lại lịch sử để mọi cam kết cục bộ xảy ra sau tất cả các cam kết mới đến từ điều khiển từ xa, tránh một cam kết hợp nhất. < / li> -
git pull --force
: Tùy chọn này cho phép bạn buộc tìm nạp một nhánh theo dõi từ xa cụ thể khi sử dụng tùy chọn& lt; refspec & gt;
mà nếu không thì không tìm nạp do xung đột. Để buộc Git ghi đè nhánh hiện tại của bạn để khớp với nhánh theo dõi từ xa, hãy đọc phần dưới đây về cách sử dụnggit reset
. -
git pull --all
: Tìm nạp tất cả các điều khiển từ xa – điều này rất hữu ích nếu bạn đang làm việc trên một ngã ba hoặc trong một trường hợp sử dụng khác có nhiều điều khiển từ xa.
Bạn có thể xem tất cả nhiều tùy chọn với git pull
trong tài liệu của git-scm .
Ví dụ về git pull
Làm việc trên Chi nhánh
Nếu bạn đang làm việc trên một chi nhánh, bạn nên chạy git pull
trước khi bắt đầu công việc và giới thiệu các cam kết mới. Ngay cả khi bạn tạm dừng phát triển một chút, vẫn có khả năng một trong những cộng tác viên của bạn đã thực hiện các thay đổi đối với chi nhánh của bạn. Thay đổi này thậm chí có thể đến từ việc cập nhật chi nhánh của bạn với các thay đổi mới từ main
.
Bạn nên chạy git status
– đặc biệt là trước git pull
. Các thay đổi không được cam kết có thể được ghi đè trong khi git pull
. Hoặc, họ có thể chặn phần git merge
của git pull
thực thi. Nếu bạn có các tệp được thay đổi, nhưng không được cam kết và các thay đổi trên điều khiển từ xa cũng thay đổi các phần tương tự của cùng một tệp, Git phải đưa ra lựa chọn. Vì chúng không phải là những thay đổi được cam kết, nên không có khả năng xảy ra xung đột hợp nhất. Git sẽ ghi đè những thay đổi trong thư mục làm việc hoặc thư mục lưu trữ của bạn hoặc hợp nhất
sẽ không hoàn tất và bạn sẽ không thể đưa vào bất kỳ cập nhật nào từ điều khiển từ xa.
Nếu điều này xảy ra, hãy sử dụng git status
để xác định những thay đổi nào đang gây ra sự cố. Xóa hoặc cam kết những thay đổi đó, sau đó git pull
hoặc git merge
lại.
Luôn cập nhật main
Giữ cho nhánh main
được cập nhật thường là một ý kiến hay.
Ví dụ: giả sử bạn đã sao chép một kho lưu trữ. Sau khi bạn nhân bản, ai đó hợp nhất một nhánh thành chính. Sau đó, bạn muốn tạo một chi nhánh mới để thực hiện một số công việc. Nếu bạn tạo chi nhánh của mình từ main
trước khi vận hành git pull
, chi nhánh của bạn sẽ không có các thay đổi gần đây nhất. Bạn có thể vô tình tạo ra xung đột hoặc các thay đổi trùng lặp. Bằng cách chạy git pull
trước khi tạo brach, bạn có thể chắc chắn rằng mình sẽ làm việc với thông tin mới nhất.
Hoàn tác một git pull
Để “hoàn tác” một git pull
một cách hiệu quả, bạn không thể hoàn tác git fetch
– nhưng bạn có thể hoàn tác git merge
đã thay đổi chi nhánh làm việc tại địa phương.
Để thực hiện việc này, bạn cần git reset
về cam kết bạn đã thực hiện trước khi hợp nhất. Bạn có thể tìm thấy cam kết này bằng cách tìm kiếm git reflog
. Bản cập nhật là nhật ký của mọi địa điểm mà HEAD đã chỉ đến – mọi địa điểm mà bạn đã từng đến. Bản cập nhật này chỉ được lưu giữ trong 30 đến 90 ngày, tùy thuộc vào cam kết và chỉ được lưu trữ cục bộ. (Bản cập nhật là một lý do tuyệt vời để không xóa kho lưu trữ nếu bạn cho rằng mình đã mắc lỗi!)
Chạy git reflog
và tìm kiếm cam kết mà bạn muốn quay lại. Sau đó, chạy git reset --hard & lt; SHA & gt;
để đặt lại HEAD và chi nhánh hiện tại của bạn về SHA của cam kết từ trước khi hợp nhất.
Buộc git pull
để ghi đè các tệp cục bộ
Nếu bạn đã cam kết cục bộ mà bạn rất tiếc, bạn có thể muốn chi nhánh cục bộ của mình khớp với chi nhánh ở xa mà không cần lưu bất kỳ công việc nào của bạn. Điều này có thể được thực hiện bằng cách sử dụng git reset
. Trước tiên, hãy đảm bảo rằng bạn có bản sao mới nhất của nhánh theo dõi từ xa đó bằng cách tìm nạp.
git tìm nạp & lt; từ xa & gt; & lt; chi nhánh & gt;
ví dụ: git fetch origin main
Sau đó, sử dụng git reset --hard
để di chuyển con trỏ HEAD và con trỏ nhánh hiện tại đến cam kết gần đây nhất vì nó tồn tại trên nhánh theo dõi từ xa đó.
git reset --hard & lt; remote & gt; / & lt; branch & gt;
ví dụ: git reset --hard origin / main
_Lưu ý: Bạn có thể tìm thấy điều khiển từ xa bằng
git remote -v
và xem tất cả các nhánh theo dõi từ xa có sẵn vớigit branch --all
.
git pull
với Rebase
Nếu có các cam kết mới trên cả chi nhánh cục bộ và chi nhánh từ xa, một cam kết hợp nhất sẽ được tạo khi bạn git pull
. Hợp nhất đệ quy này là kiểu hợp nhất mặc định khi có hai phần tách trong lịch sử được kết hợp với nhau. Tuy nhiên, bạn có thể muốn lịch sử trên một nhánh chỉ là một dòng.
Bạn có thể cập nhật nhánh làm việc cục bộ của mình bằng các cam kết từ điều khiển từ xa, nhưng hãy viết lại lịch sử để mọi cam kết cục bộ xảy ra sau tất cả các cam kết mới đến từ điều khiển từ xa, tránh một cam kết hợp nhất.
Điều này được thực hiện với git pull --rebase
.
Việc sử dụng git pull --rebase
không ảnh hưởng đến tính toàn vẹn của các thay đổi hoặc các cam kết, nhưng nó ảnh hưởng đến giao diện lịch sử trong mối quan hệ cha / con cam kết.
Điều khoản liên quan
-
git clone [url]
: Sao chép (tải xuống) kho lưu trữ đã tồn tại trên GitHub, bao gồm tất cả các tệp, nhánh và cam kết. -
git status
: Luôn luôn là một ý tưởng hay, lệnh này cho bạn biết bạn đang ở nhánh nào, tệp nào nằm trong thư mục đang hoạt động hoặc thư mục dàn dựng và bất kỳ thông tin quan trọng nào khác. -
git branch
: Điều này hiển thị các nhánh hiện có trong kho lưu trữ cục bộ của bạn. Bạn cũng có thể sử dụnggit branch [banch-name]
để tạo một chi nhánh từ vị trí hiện tại của mình hoặcgit branch --all
để xem tất cả các chi nhánh, cả những chi nhánh cục bộ trên máy của bạn và các nhánh theo dõi từ xa được lưu trữ từgit pull
hoặcgit fetch
cuối cùng từ điều khiển từ xa. -
git push
: Tải tất cả các cam kết chi nhánh cục bộ lên điều khiển từ xa. -
git log
: Duyệt và kiểm tra sự phát triển của các tệp dự án. -
git remote -v
: Hiển thị các kho lưu trữ từ xa được liên kết và tên được lưu trữ của chúng, chẳng hạn nhưorigin
.
Đóng góp cho bài viết này trên GitHub.
Bắt đầu với git và GitHub
Xem lại mã, quản lý dự án và xây dựng phần mềm cùng với 40 triệu nhà phát triển.
Đăng ký GitHub
Đăng nhập
Xem thêm những thông tin liên quan đến chủ đề git pull branch from github
GitHub CoPilot AI Coding — Microsoft’s Big Mistake?
- Tác giả: Gamefromscratch
- Ngày đăng: 2022-06-22
- Đánh giá: 4 ⭐ ( 2464 lượt đánh giá )
- Khớp với kết quả tìm kiếm: GitHub CoPilot is now available widely as a commercial product. GitHub is an AI powered coding assistant, and it’s truly impressive… it’s also problematic on moral, legal and ethical level that frankly it boggles my mind the legal team at Microsoft allowed this to ship as a product! This is a truly amazing product, and AI assisted coding is no doubt the future of development but this seems… early and dangerous.
Link
https://gamefromscratch.com/github-copilot-released/
git pull command examples [5 Methods]
- Tác giả: www.golinuxcloud.com
- Đánh giá: 3 ⭐ ( 8113 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Git pull is the process of fetching and merging committed changes from a remote project to your local server. It is combination of git fetch and git merge
Managing a Github Pull Request in The Visual Studio Using Git And Github Extension
- Tác giả: techcommunity.microsoft.com
- Đánh giá: 4 ⭐ ( 9297 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Normally we always need to test the whole set of code before accepting a git pull request, in this article we will try to understand the best approach to
Git Pull Branch from GitHub
- Tác giả: www.w3schools.com
- Đánh giá: 3 ⭐ ( 9609 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
How to pull Git remote branch? [3 Examples of command
- Tác giả: www.jquery-az.com
- Đánh giá: 3 ⭐ ( 3475 lượt đánh giá )
- Khớp với kết quả tìm kiếm: As we run $ git pull command, the pull command executes git fetch and downloads the content from the remote branch.This is followed by execution of
Git pull a certain branch from GitHub
- Tác giả: stackoverflow.com
- Đánh giá: 4 ⭐ ( 9091 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Allowing changes to a pull request branch created from a fork
- Tác giả: docs.github.com
- Đánh giá: 3 ⭐ ( 5738 lượt đánh giá )
- Khớp với kết quả tìm kiếm: For greater collaboration, you can allow commits on branches you’ve created from forks owned by your personal account.
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình