2009-09-18 38 views
366

Tôi đã có một dự án được kiểm tra cục bộ từ github, repo từ xa đó đã có các thay đổi được thực hiện cho nó. Lệnh chính xác để cập nhật bản sao cục bộ của tôi với những thay đổi mới nhất là gì?Cập nhật một kho lưu trữ cục bộ với các thay đổi từ kho lưu trữ Github

+16

Cần lưu ý rằng github đã tạo ra một tập hợp các hướng dẫn rất hữu ích và hữu ích để sử dụng git và github. Tôi thấy chúng vô giá khi lần đầu tiên tôi chuyển sang git. https://help.github.com/ –

+18

@MarkEmbling CHO MỌI câu hỏi có thể thêm nhận xét "RTFM" ... Nhưng tôi khá vui vì ai đó trả lời câu hỏi này. – jm666

Trả lời

513

lẽ:

git pull origin master 
+20

Đã phàn nàn: "Bạn đã yêu cầu kéo từ 'nguồn gốc' từ xa, nhưng không chỉ định chi nhánh . Vì đây không phải là cấu hình mặc định từ xa cho chi nhánh hiện tại của bạn, bạn phải chỉ định nhánh trên dòng lệnh." Vì vậy, tôi đã thử "$ git pull origin master" và nó hoạt động tốt. –

+6

git pull origin master – Hoto

+0

Tôi đã xóa một số tập tin và nó không mang lại cho họ một lần nữa, bất kỳ ý tưởng? –

51
git fetch [remotename] 

Tuy nhiên, bạn sẽ cần hợp nhất bất kỳ thay đổi nào với chi nhánh địa phương của mình. Nếu bạn đang ở trên một chi nhánh đó là theo dõi một chi nhánh từ xa trên Github, sau đó

git pull 

đầu tiên sẽ làm một lấy, và sau đó hợp nhất trong ngành theo dõi

+2

Nếu bạn đang sử dụng phương thức 'git fetch', bạn cũng sẽ muốn tìm nạp các thẻ với' git fetch -t'. Nếu bạn hài lòng với các thay đổi ('git log HEAD..FETCH_HEAD'), thì bạn có thể hợp nhất chúng với' git merge FETCH_HEAD'. –

56

này nên hoạt động với mọi repo mặc định:

git pull origin master 

Nếu nhánh mặc định của bạn khác với master, bạn sẽ cần phải ghi rõ tên chi nhánh:

git pull origin my_default_branch_name 
+2

Không thực sự. gây tử vong: Không thể tìm thấy chủ sở hữu ref từ xa –

+1

@Eijkhout probablt trong trường hợp repo của bạn không có chi nhánh chính và một số chi nhánh khác được đặt làm mặc định – Hoto

0

Câu hỏi này là rất chung chung và có một vài giả định tôi sẽ làm để đơn giản hóa nó một chút. Chúng tôi sẽ giả định rằng bạn muốn cập nhật chi nhánh master của mình.

Nếu bạn chưa thực hiện bất kỳ thay đổi cục bộ nào, bạn có thể sử dụng git pull để xóa mọi cam kết mới và thêm chúng vào số master.

git pull origin master 

Nếu bạn đã thực hiện thay đổi và bạn muốn tránh thêm cam kết hợp nhất mới, hãy sử dụng git pull --rebase.

git pull --rebase origin master 

git pull --rebase sẽ hoạt động ngay cả khi bạn chưa thực hiện thay đổi và có thể là cuộc gọi tốt nhất của bạn.

Các vấn đề liên quan