git - kéo từ chi nhánh cụ thể


197

Tôi đã sao chép một kho lưu trữ git vào máy chủ dev của mình và sau đó chuyển sang nhánh dev nhưng bây giờ tôi không thể thực hiện thao tác git để cập nhật chi nhánh.

Làm cách nào để cập nhật mã trên máy chủ?

Câu trả lời:


258

Xem trang git-pull man :

git pull [options] [<repository> [<refspec>...]]

và trong phần ví dụ:

Hợp nhất vào nhánh hiện tại, nhánh từ xa tiếp theo:

$ git pull origin next

Vì vậy, tôi tưởng tượng bạn muốn làm một cái gì đó như:

git pull origin dev

Để thiết lập nó để nó thực hiện điều này theo mặc định trong khi bạn đang ở nhánh dev:

git branch --set-upstream-to dev origin/dev

6
" --set-upstreamcờ không được chấp nhận và sẽ bị xóa. Cân nhắc sử dụng --trackhoặc --set-upstream-to Branch devthiết lập để theo dõi nhà phát triển chi nhánh từ xa." Ví dụ. git branch --set-upstream-to origin/dev
Nagendra Rao

Chỉnh sửa này để phản ánh sự phản đối của --set-up?
Scott Skiles

Cá nhân tôi quan tâm đến dòng chảy khi tôi muốn kéo một nhánh cụ thể từ nguồn gốc chưa được tìm nạp và đặt đối tượng đó trên nhánh riêng, vì vậy nhánh hiện tại của tôi không được hợp nhất với những gì tôi đang kéo.
Yuriy Pozniak

43

Dưới đây là những gì bạn cần làm. Trước tiên hãy chắc chắn rằng bạn đang ở trong chi nhánh mà bạn không muốn kéo. Ví dụ: nếu bạn có chủ và phát triển chi nhánh, và bạn đang cố gắng kéo phát triển chi nhánh thì hãy ở lại chi nhánh chính.

git checkout master

Sau đó,

git pull origin develop

5
Điều này thật khó hiểu. Nếu tôi muốn kéo một nhánh "dev" từ xa vào nhánh "dev" cục bộ, tôi sẽ nghĩ rằng bạn cần ở lại nhánh "dev" cục bộ chứ không phải bất kỳ nhánh nào khác.
La Mã

2
Điều này không tìm nạp chi nhánh phát triển từ xa, và sau đó hợp nhất nó với chủ địa phương của bạn?
Brad P.

2
Tôi đã làm git checkout developgit pull origin developvà làm việc tốt. Bạn sẽ cần kiểm tra chi nhánh khác nếu bạn muốn xóa chi nhánh địa phương hoặc từ xa ( git branch -d develophoặc git push origin --delete develop)
ChesuCR

rất bối rối. Tôi vừa sáp nhập chi nhánh mà tôi muốn thử nghiệm thành chủ tại địa phương :)
Fabian Bosler

Như @roman nói, một người cần phải ở trong chi nhánh địa phương.
woter324

15

Nó thường rõ ràng hơn để phân tách hai hành động git pullnào. Điều đầu tiên nó làm là cập nhật branc theo dõi cục bộ tương ứng với nhánh từ xa. Điều này có thể được thực hiện với git fetch. Thứ hai là sau đó nó hợp nhất trong các thay đổi, tất nhiên có thể được thực hiện git merge, mặc dù các tùy chọn khác như git rebaseđôi khi hữu ích.


7

Ví dụ về tài liệu của Laravel:

git pull https://github.com/laravel/docs.git 5.8

dựa trên định dạng lệnh:

git pull origin <branch>

👍


5

Dưới đây là các bước để kéo một chi nhánh cụ thể hoặc bất kỳ,

1. xóa chủ (bạn cần cung cấp tên người dùng và mật khẩu)

       git clone <url>

2. lệnh trên sẽ sao chép kho lưu trữ và bạn sẽ là nhánh chính bây giờ

       git checkout <branch which is present in the remote repository(origin)>

3. Lệnh trên sẽ kiểm tra nhánh bạn muốn kéo và sẽ được đặt để tự động theo dõi nhánh đó

4.Nếu vì lý do nào đó, nó không hoạt động như vậy, sau khi kiểm tra chi nhánh đó trong hệ thống cục bộ của bạn, chỉ cần chạy lệnh dưới đây

       git pull origin <branch>

1

Bạn có thể cập nhật / kéo trên nhánh git mà bạn có thể sử dụng lệnh bên dưới

git pull origin <branch-name>

Lệnh trên sẽ lấy một bản cập nhật / lấy từ việc đặt tên chi nhánh

Nếu bạn muốn lấy từ một chi nhánh khác, bạn cần phải đi đến chi nhánh đó.

git checkout master

Hơn

git pull origin development

Hy vọng rằng sẽ làm việc cho bạn


0

git-pull - Tìm nạp và tích hợp với kho lưu trữ khác hoặc một nhánh cục bộ

git pull [options] [<repository> [<refspec>...]]

Bạn có thể giới thiệu git doc chính thức https://git-scm.com/docs/git-pull

Ví dụ :

git pull origin dev


Làm thế nào là câu trả lời của bạn khác với bất kỳ của những người khác đã được đăng?
j08691

Vâng, không có gì nhiều chỉ là tài liệu chính thức ( git-scm.com/docs/git-pull ) để bạn có thể khám phá nhiều tùy chọn.
sesha

0

nếu bạn muốn lấy từ một chi nhánh cụ thể, tất cả những gì bạn phải làm là

git pull 'remote_name' 'branch_name'

LƯU Ý: Hãy chắc chắn rằng bạn cam kết mã của bạn đầu tiên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.