Làm cách nào để đồng bộ hóa với kho lưu trữ Git từ xa?


94

Tôi đã chuyển một dự án trên github, đã thực hiện một số thay đổi, cho đến nay rất tốt.

Trong thời gian chờ đợi, kho lưu trữ tôi đã tách đã thay đổi và tôi muốn đưa những thay đổi đó vào kho lưu trữ của mình. Làm thế nào để làm điều đó ?

Câu trả lời:


77

Nói chung git pulllà đủ, nhưng tôi không chắc bạn đã chọn bố cục nào (hoặc đã chọn github cho bạn).


4
git pull sẽ không hoạt động trừ khi bạn đã định cấu hình điều khiển từ xa để tìm nạp từ và nhánh để hợp nhất.
Abizern

Tôi giả định rằng điều đó đã được thực hiện trong giai đoạn "tạo một ngã ba". Trừ khi thông tin này bị vứt bỏ, nếu không thì nó vẫn nên ở đó.
Šimon Tóth

sử dụng git pull với https không hoạt động, nhưng với http nó đã làm được ... bây giờ tôi đã cập nhật, Cảm ơn!
George Profenza,

@GeorgeProfenza Điều đó không an toàn. Xem xét sử dụngssh
JVE999

66

Giả sử các bản cập nhật của họ là chính và bạn đang ở trên nhánh mà bạn muốn hợp nhất các thay đổi vào.

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

Cũng lưu ý rằng sau đó bạn sẽ muốn đẩy hợp nhất trở lại bản sao của kho lưu trữ:

git push origin master

thêm hoạt động, kéo không thành công :(, tôi gặp lỗi liên quan đến https: error: Giao thức https không được hỗ trợ hoặc bị tắt trong libcurl khi truy cập github.com/mrdoob/three.js.git/info/refs nghiêm trọng: Yêu cầu HTTP không thành công Gợi ý?
George Profenza,

Nền tảng nào? Có vẻ như một trong những phần phụ thuộc của git chưa hoàn chỉnh.
Mark Hibberd vào

Vì một công việc xung quanh, bạn cũng có thể sử dụng giao thức git thay vì https, ví dụ: git remote set-url git: //github.com/mrdoob/three.js.git - sau đó thử kéo git.
Mark Hibberd vào

chạy trên osx. Tôi đã quản lý để có được nó bằng cách sử git pull github.com/mrdoob/three.js.git thạc sĩ
George Profenza

3
typo trong lệnh, tôi nghĩ rằng, bạn bắt đầu với original, sau đó chuyển sangorigin
Benjol

46

Bạn phải thêm repo gốc như một bản ngược dòng.

Tất cả đều được mô tả tốt ở đây: https://help.github.com/articles/fork-a-repo

git remote add upstream https://github.com/octocat/Spoon-Knife.git
git fetch upstream
git merge upstream/master
git push origin master

5

Bạn cần thêm kho lưu trữ gốc (kho mà bạn đã tách) làm điều khiển từ xa.

git từ xa thêm github (sao chép url cho kho lưu trữ gốc)

Sau đó, bạn cần đưa các thay đổi vào kho lưu trữ cục bộ của mình

git fetch github

Bây giờ bạn sẽ có tất cả các nhánh của kho lưu trữ gốc trong kho lưu trữ cục bộ của bạn. Ví dụ, nhánh chủ sẽ là github/master. Với những chi nhánh này, bạn có thể làm những gì bạn muốn. Hợp nhất chúng vào các chi nhánh của bạn, v.v.


1
Tôi đề nghị tên upstreamcho điều khiển từ xa.
vidstige

@vidstige Điều này không thực sự đủ mô tả nếu bạn có nhiều điều khiển từ xa cho một kho lưu trữ. Ví dụ: tôi thường có một điều khiển từ xa trên Github và một điều khiển từ xa trên Dropbox.
Abizern

tốt, sau đó nó tất nhiên có ý nghĩa. Đó là lý do tại sao thật tuyệt khi có khả năng tự đặt tên cho chúng. Nhận ra thiết lập của bạn có lẽ ít phổ biến hơn so với việc có một từ xa được gọi là gốc là ngã ba của riêng bạn và sau đó bạn có bản gốc, thường được đặt tên là "ngược dòng".
vidstige

-8

Đối với Linux:

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all

3
Điều này trái ngược với những gì OP đang tìm kiếm.
Ryan
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.