Tôi tạo ra một repo trần để xuất bản kho của tôi, nhưng tôi không thể tìm ra cách để cập nhật repo trần với trạng thái hiện tại của kho lưu trữ chính.Làm thế nào để cập nhật kho tiền của tôi?
Trả lời
Nếu bạn muốn sao chép tất cả các đối tượng từ repo chính, làm được điều này bên trong repo chính:
git push --all <url-of-bare-repo>
Ngoài ra, làm một lấy bên trong repo trần:
git fetch <url-of-main-repo>
Bạn không thể làm một kéo, bởi vì một kéo muốn hợp nhất với HEAD
, mà một repo trần không có.
Bạn có thể thêm các như điều khiển từ xa để tiết kiệm cho mình một số cách gõ trong tương lai:
git remote add <whatever-name> <url-of-other-repo>
Sau đó, bạn chỉ có thể làm
git push --all <whatever-name>
hoặc
git fetch <whatever-name>
tùy thuộc vào những gì repo bạn đang ở. Nếu <whatever-name>
là origin
, bạn thậm chí có thể để nó ra khỏi màn hình r.
Tuyên bố từ chối trách nhiệm: Tôi không phải là git guru. Nếu tôi nói điều gì sai, tôi muốn được chứng ngộ!
Cập nhật: Đọc nhận xét!
Đẩy dường như làm việc tốt, thx cho gợi ý tôi nghĩ rằng tôi sẽ có thể tích hợp này vào một cái móc hay cái gì đó tương tự. –
Khi tôi đã thực hiện 'git-fetch --all' bên trong kho trống, tôi không thấy các cập nhật mà tôi đã thực hiện cho repo chính, nhưng khi đẩy chúng từ repo chính với' git push --all
Ý bạn là gì bởi "không thấy"? Tôi không chắc làm thế nào 'git log' hoạt động trong một repo trần; có thể thử 'git log --all'? – Thomas
Thêm kho trống làm kho lưu trữ từ xa, sau đó sử dụng git push
.
Vì vậy, nếu tôi muốn thực hiện việc này mà không cần thúc đẩy thì tôi không thể sử dụng một kho chứa trần và sử dụng một liên kết tượng trưng hoặc một cái gì đó như thế? –
Đẩy là phương pháp bình thường để chuyển nội dung kho lưu trữ sang kho lưu trữ trống, không cần phải tránh nó. – Philipp
Bạn không thể lúc nào cũng đẩy. Ví dụ, nếu trần là trong một mạng riêng, và repos chính là một công cộng (trên GitHub, cho exemple) – fanf42
Tôi tạo ra một kho lưu trữ bằng cách sử dụng lệnh sau
git clone --bare <remote_repo>
Sau đó, tôi đã cố gắng để cập nhật các bản sao trần bằng cách sử dụng câu trả lời của Thomas, nhưng nó đã không làm việc cho tôi. Để có được kho trần để cập nhật (đó là những gì tôi nghĩ Let_Me_Be được hỏi), tôi đã phải tạo ra một kho lưu trữ gương:
git clone --mirror <remote_repo>
Sau đó, tôi có thể chạy lệnh sau trong kho được nhân đôi để lấy thông tin cập nhật kho chính của :
git fetch --all
tôi đã xem qua giải pháp này bằng cách đọc Mirror a Git Repository By Pulling
Để thay đổi một repo trần hiện tại để phản chiếu, tất cả những gì bạn cần làm là thêm 2 dòng vào tập tin cấu hình git tại
giải pháp duy nhất bên cạnh tái tạo với git clone --mirror
là from Gregor:
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
thì bạn có thể git fetch
và bạn sẽ thấy các cập nhật. Điều kỳ lạ là trước khi điều này, mặc dù có một cấu hình remote
, nó không có chi nhánh nào được liệt kê trong git branch -a
.
Điều này thực sự đã giúp tôi! Dự án Capistrano/repo cũng sử dụng cài đặt này để cho phép một lớp lót 'git remote update' thực hiện công việc. –
Nếu điều khiển từ xa có các nhánh được nâng cấp hoặc bị xóa (và bạn muốn phản ánh những thay đổi đó), bạn có thể cần thêm '--force' và' --prune' tương ứng vào dòng 'git fetch'. –
Sau nhiều lần rối tung xung quanh, tôi thấy rằng điều này phù hợp với tôi.
Khi:
git clone --mirror ssh://[email protected]:2000/repo
git remote add remote_site ssh://[email protected]_site.address/repo
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
Mỗi lần tôi muốn đồng bộ hóa:
cd /home/myhome/repo.git
git --bare fetch ssh://[email protected]:2000/repo
git fetch ssh://[email protected]:2000/repo
git push --mirror remote_site
Dòng thứ ba ('git config remote.origin.fetch 'refs/heads/*: refs/heads/*'') là khóa. Câu trả lời tốt, cảm ơn! – peterh
Giả sử:
$ git clone --bare https://github.com/.../foo.git
Fetch với:
$ git --git-dir=foo.git fetch origin +refs/heads/*:refs/heads/* --prune
Lưu ý: --git-dir=foo.git
không bắt buộc nếu trước tiên bạn cd
vào thư mục.
Lạ lùng là câu trả lời này không nằm trên đầu trang. Ít nhất nó hoạt động ở đây ... –
Tôi đã làm một bản sao trần, và không có nguồn gốc ... – Kieveli
Mặc dù tôi không biết khi nào xảy ra, nếu 'origin' không được xác định, bạn luôn có thể thay thế' origin' một phần với đường dẫn/url đến kho lưu trữ ban đầu của bạn. ví dụ. '$ git --git-dir = foo.git tìm nạp https://github.com/.../foo.git + refs/heads/*: refs/heads/*' – antak
- 1. Tôi làm cách nào để sử dụng FTP để cập nhật trang web của mình từ kho lưu trữ Subversion?
- 2. Làm thế nào để bảo toàn kho khóa CAcerts trên Mac trong các bản cập nhật?
- 3. Làm thế nào để bạn nhận được thông báo về các cập nhật của kho lưu trữ của bạn?
- 4. Làm thế nào để cập nhật phiên bản phonegap của tôi?
- 5. Android: Làm thế nào để cập nhật textView của tôi trong một Fragment
- 6. Làm thế nào để cập nhật phiên bản của tôi về git trên OSX 10.8
- 7. Làm thế nào để truy cập vào kho bitbucket nếu tôi đổi tên nó
- 8. Tôi làm cách nào để cập nhật XElement cụ thể?
- 9. Tôi làm cách nào để cập nhật lên addEventListener?
- 10. Cập nhật một gương git của một kho SVN
- 11. Tôi làm cách nào để cập nhật IntelliJ IDEA?
- 12. Tôi làm cách nào để gửi cập nhật các gói?
- 13. Làm thế nào để cập nhật counter_cache khi cập nhật một mô hình?
- 14. Làm thế nào để tôi làm một báo cáo cập nhật nơi một điều kiện
- 15. Làm thế nào để cập nhật lên Ruby 1.8.7
- 16. Làm thế nào để cập nhật nội dung ViewPager?
- 17. Làm thế nào để cập nhật Mercurial client trong CentOS6?
- 18. Làm thế nào để cập nhật mô hình Ember.Route động?
- 19. Làm thế nào để cập nhật Tcl/Tk bằng Python?
- 20. Làm thế nào để cập nhật nhanh một BufferGeometry lớn?
- 21. Làm thế nào để cập nhật sang trọng-git
- 22. làm thế nào để hoàn tác cập nhật git submodule
- 23. Làm thế nào để thực hiện cập nhật hàng loạt?
- 24. Làm thế nào để cập nhật ở mongoose?
- 25. Làm thế nào để cập nhật biểu đồ trong androidplot
- 26. Làm thế nào để cập nhật lên C++ 11?
- 27. Làm thế nào để cập nhật dữ liệu trong UITableView?
- 28. Tôi nên cập nhật tài nguyên REST như thế nào?
- 29. Làm thế nào để tạo tệp nhật ký của trang web của tôi trong php?
- 30. Làm thế nào để cho phép di chuyển để cập nhật cơ sở dữ liệu của tôi trong MVC4?
Xem câu trả lời này: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide/2964397#2964397 –