2012-10-29 23 views
7

Tôi có một tệp dữ liệu văn bản lớn (hiện tại) là 120 MB.Làm cách nào để quản lý các tệp dữ liệu lớn với GitHub?

Thực tiễn kém để đưa nó vào kho? Nó có ảnh hưởng đến chức năng tìm kiếm trên GitHub không?

Có vẻ như đó là một ý tưởng tồi bởi vì toàn bộ mã nguồn chỉ là 900 dòng.

Không lập kế hoạch cập nhật tệp.

Có thể đặt nó trên Dropbox hoặc Google Documents, nhưng sau đó nó tách biệt với repo.

Nếu không phải GitHub, có cách nào tốt hơn để quản lý/sao lưu các tệp dữ liệu lớn không?

+1

Tôi thực sự thấy điều đó, nhưng trường hợp sử dụng hơi khác một chút và câu trả lời là cũ. –

Trả lời

2

Đặt nó trong repo nếu:
1- bạn muốn theo dõi các thay đổi
2- nó thực sự là một phần của dự án và bạn muốn mọi người nhận được nó khi họ clone repo

Đừng để nó vào repo (sử dụng .gitignore để loại trừ nó) nếu:
1- nó thay đổi thường xuyên nhưng thay đổi không có ý nghĩa và bạn không muốn giữ lại lịch sử
2- nó có sẵn trực tuyến hoặc bạn có thể làm cho nó có sẵn trực tuyến và đặt một liên kết hoặc một cái gì đó trong repo cho mọi người biết nơi để tìm thấy nó

Dropbox là tốt nếu bạn không có nhiều người tải xuống, Amazon S3 là lựa chọn tốt nhất của bạn để lưu trữ nó.

2

Nếu tệp không cần phải được kiểm soát phiên bản thì tôi sẽ không muốn đặt nó trên git hub.

Cập nhật dựa trên các cuộc thảo luận ...

Từ http://git-scm.com/book/en/Customizing-Git-Git-Hooks

Sau khi bạn chạy một kiểm git thành công, hậu kiểm tra móc chạy; bạn có thể sử dụng nó để thiết lập thư mục làm việc của bạn đúng cách cho môi trường dự án của bạn. Điều này có thể có nghĩa là di chuyển trong các tệp nhị phân lớn mà bạn không muốn tài liệu được kiểm soát nguồn, tự động tạo hoặc điều gì đó dọc theo các dòng đó.

Vì vậy, sử dụng cơ chế này bạn có thể tải xuống tệp dữ liệu được lưu trữ bên ngoài vào bản sao làm việc của mình.

+0

Đó là một điểm tốt. Nhưng nó cũng nên được liên kết bằng cách nào đó ... –

+0

Bạn luôn có thể liên kết đến tệp được lưu trữ bên ngoài nằm trên Internet từ tệp được kiểm soát nguồn trong github. –

+1

Đó là điều khó khăn, nhưng nếu có một tập tin git như '.gitignore' có liên kết, điều đó sẽ hoàn hảo. Nó có thể là '.gitlinks'. Mỗi tập tin có thể có một vị trí trong repo và trên một máy chủ từ xa (như S3). Lệnh git có thể tải chúng xuống vị trí của chúng trong repo. Và git sẽ không biết tải chúng lên vì chúng không thực sự là một phần của repo. –

3

bạn có thể đặt nó trên github, nhưng tôi khuyên bạn nên đặt nó trong một kho lưu trữ khác và liên kết với nó thông qua các mô-đun con. Điều này sẽ đảm bảo rằng các tập tin không được chuyển giao/điều chỉnh trừ khi bạn rõ ràng làm như vậy thông qua các submodule lệnh.

2

pages.github.com là địa điểm chính xác? không

github: giúp giải đáp câu hỏi này rất rõ ràng (tôi đang tìm kiếm họ cũng)

https://help.github.com/articles/what-is-my-disk-quota

các tập tin media lớn

các tập tin media Binary không hòa hợp rất tốt với Git.Đối với những tệp này, cách tốt nhất là sử dụng dịch vụ được thiết kế riêng cho những gì bạn đang sử dụng.

Đối với các tệp phương tiện lớn như video và nhạc, bạn nên tự lưu trữ tệp hoặc sử dụng dịch vụ như Vimeo hoặc Youtube.

Đối với các tệp thiết kế như PSD và mô hình 3D, một dịch vụ như Dropbox thường hoạt động khá độc đáo. Đây là những gì các nhà thiết kế của GitHub sử dụng để đồng bộ; Chỉ các tài sản hình ảnh cuối cùng mới được đưa vào repos của chúng tôi.

https://help.github.com//articles/distributing-large-binaries

+2

Bây giờ nó cung cấp câu trả lời –

1

Có nhiều cách tốt để xử lý tình trạng này. Ví dụ khi tôi đang làm việc trên một dự án phân tích dữ liệu, đặc biệt là sau khi làm sạch và các bước tiền xử lý, sự què quặt của nó để chia sẻ mã chứ không phải tập dữ liệu (trong lý do khóa học cho kích thước của tập dữ liệu). Dưới đây là những gì tôi đã tìm thấy:

  • git lfs Large File Storage này cho phép bạn theo dõi và cam kết và đẩy những chương trình, tập tin dữ liệu, hình ảnh, vv với cùng xa xôi và bạn không cần phải kéo tất cả mọi thứ nếu bạn sao chép các repo .

  • git-annex sử dụng các lệnh riêng của nó để bạn sẽ thực hiện riêng các tệp repo và phụ lục. Có vẻ tuyệt vời để quản lý các tệp này trên bất kỳ điều khiển từ xa nào như ổ cứng, s3, ổ google và nhiều thứ khác.

Someone has made a nice comparison of git-annex vs git lfs here, và this post compares several method in short form.

Cả hai dường như tuyệt vời, git phụ lục được nhiều hơn hiện nay trưởng thành, nhưng tiệm git được phát triển bởi github mà tôi sử dụng, đó là lý do tại sao tôi đang sử dụng tiệm git.

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