Trên một máy sản xuất, tôi muốn kiểm tra một tập tin cụ thể tại một phiên bản cụ thể từ GitHub để tạo thuận lợi cho việc di chuyển cơ sở dữ liệu. Tôi không muốn kiểm tra (hoặc thậm chí nhân bản) toàn bộ kho mã nguồn (vì đây là môi trường sản xuất của tôi). Làm thế nào tôi có thể kéo tập tin tôi đang tìm?Làm cách nào để kiểm tra một tệp từ GitHub mà không cần sao chép toàn bộ kho lưu trữ?
Trả lời
Theo như tôi có thể biết, việc tải xuống một tệp từ kho lưu trữ git được phân phát qua http
hiện không thể thực hiện được. Tôi tin rằng GitHub có một tính năng "tải xuống" riêng biệt mà họ muốn mọi người sử dụng thay vào đó (nhưng tôi không biết liệu nó có hỗ trợ tải xuống một tệp đơn lẻ hay không).
Cách khắc phục là sao chép toàn bộ kho lưu trữ (!) Và sau đó kéo tệp quan tâm. Dưới đây là một chức năng bash mà không được công việc:
git-cat() {
if [ -z "$1" -o -z "$2" ]; then
echo "Usage: git-cat REPO_URL FILE [BRANCH]"
exit 1
fi
tmprepo=`mktemp -d -t gitrepo.XXXXXX`
reponame=$1
filename=$2
branchname=$3
if [ -z "$branchname" ]; then
branchname="master"
fi
git clone -nq $reponame $tmprepo &&
git --git-dir $tmprepo/.git show ${branchname}:${filename} &&
rm -rf $tmprepo
}
Tôi làm điều này với cho xương sống như vậy
curl -O https://raw.github.com/documentcloud/backbone/master/backbone-min.js
Giải pháp của tôi là như thế nào trong bài viết đầu tiên. Nhưng tôi cố gắng giải thích thêm một chút. Có nút "Nguyên bản" trên GitHub cho mọi tệp - nó sẽ chỉ hiển thị văn bản thuần trong trình duyệt. Ngoài ra, bạn có thể sử dụng url đó.
Ví dụ, tôi có repo https://github.com/MasterSergius/conf_files.git Và tôi muốn để có được file vimrc tôi, vì vậy ở đây liên kết đến tập tin của tôi: https://raw.githubusercontent.com/MasterSergius/conf_files/master/.vimrc tôi nghĩ, rằng bằng mẫu này, bạn thậm chí có thể đoán url tập tin bằng cách repo và tệp tên đầy đủ. Vì vậy, bây giờ tôi có thể tải nó với curl:
curl https://raw.githubusercontent.com/MasterSergius/conf_files/master/.vimrc -o ~/.vimrc
- 1. Kiểm tra kho svn mà không cần tệp .svn
- 2. Làm thế nào để sao chép một kho lưu trữ Subversion với "GitHub cho Windows"?
- 3. Làm thế nào để trong Git, sao chép một kho lưu trữ từ xa (GitHub) từ một ngày cụ thể
- 4. Làm cách nào để sao chép/sao chép kho lưu trữ git mà không lãng phí dung lượng?
- 5. Có cách nào để sao chép kho lưu trữ từ web theo từng bước không?
- 6. Làm cách nào để sao chép kho lưu trữ git và giữ điều khiển từ xa?
- 7. Làm cách nào để sao chép một wiki GitHub?
- 8. Chỉ đẩy một tệp vào GitHub từ một kho lưu trữ cục bộ
- 9. Làm thế nào để sao chép kho lưu trữ với Composer mà không có --prefer-source? (sử dụng Symfony 2)
- 10. Kho lưu trữ Clone vào GitHub
- 11. Làm cách nào để đổi tên kho lưu trữ GitHub?
- 12. 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
- 13. Cách lấy/sao chép chi nhánh git từ xa vào kho lưu trữ cục bộ
- 14. Cách sao chép kho lưu trữ đến một máy chủ/kho lưu trữ từ xa với Mercurial
- 15. Làm cách nào để nhập một kho lưu trữ svn đã được kiểm tra vào Eclipse?
- 16. Di chuyển dự án SVN trong kho lưu trữ mà không cần kiểm tra
- 17. Git: Chỉ đẩy tệp cấu hình riêng tư để kiểm tra kho lưu trữ chứ không phải để github?
- 18. Làm cách nào để thêm tệp vào SVN mà không cần kiểm tra
- 19. Đẩy từ kho lưu trữ cục bộ sang GitHub được lưu trữ từ xa
- 20. Được sao chép cách duy nhất để lấy nội dung của một kho lưu trữ Mercurial?
- 21. Cách Python để sao chép kho lưu trữ git
- 22. Cách thêm/xóa thư mục mà không cần tải xuống từ kho lưu trữ trong Subversion?
- 23. Làm thế nào để bạn sao lưu một kho lưu trữ Jackrabbit apache mà không cần tắt Jackrabbit xuống?
- 24. Làm cách nào để thay thế hoàn toàn kho lưu trữ bitbucket bằng một kho lưu trữ khác?
- 25. Cách chọn lọc sao chép kho lưu trữ git
- 26. Có an toàn để "phân nhánh" một kho lưu trữ thủy ngân cục bộ bằng cách sao chép toàn bộ thư mục không?
- 27. nối thêm tệp vào lưu trữ mà không đọc/viết lại toàn bộ lưu trữ
- 28. Làm thế nào để tạo một chuỗi từ mảng char mà không cần sao chép nó?
- 29. Làm cách nào để sao chép thư mục từ kho lưu trữ git này sang kho lưu trữ git khác, lưu giữ lịch sử?
- 30. Cách đặt receive.denyNonFastForwards trên một kho lưu trữ trong GitHub
Đã giải quyết chắc chắn: http://stackoverflow.com/questions/610208/how-to-retrieve-a-single-file-from-specific -revision-in-git http://stackoverflow.com/questions/692246/how-do-i-revert-one-file-to-the-last-commit-in-git http://stackoverflow.com/question/6580641/how-to-checkout-a-single-file-in-git http://stackoverflow.com/questions/1125476/git-retrieve-a-single-file-from-a-repository – fuzzyalej
Tất cả của những điều trên hầu như không liên quan, ngoại trừ http://stackoverflow.com/questions/1125476/git-retrieve-a-single-file-from-a-repository, nhưng tiếc là bạn không thể sử dụng '' --remote = '' với GitHub (http://groups.google.com/group/github/browse_thread/thread/cfcbcb1dc5f41f16). –