Cách sử dụng rsync để sao lưu thư mục mà không cần thư mục con git


43

Tôi muốn sao chép cthư mục của mình với tất cả các thư mục con trừ ./gitthư mục con. Tôi làm điều đó bằng cách sử dụng rsync:

echo "copy c and sh files "
rsync -a --include='*.c' --include='*.sh' --include='*/' --exclude='*' ~/c/ ~/Dropbox/Public/c
# remove .git directory = do not send it to dropbox. Thx to Tomasz Sowa
rm -rf ~/Dropbox/Public/c/.git

Tôi có thể làm điều đó tốt hơn không?

Câu trả lời:


48

Chỉ cần thêm một loại trừ rõ ràng cho .git:

rsync -a --exclude='.git/' --include='*.c' --include='*.sh' --include='*/' --exclude='*' ~/c/ ~/Dropbox/Public/c

Một tùy chọn khác là tạo ~/.cvsignorechứa dòng sau cùng với bất kỳ thư mục nào khác mà bạn muốn loại trừ:

.git/


Nó được chỉ định làm thế nào bạn nên đưa ra đường dẫn cho --exclude. Nếu bạn có vấn đề với nó, hãy xem câu trả lời này .
totymedli

32

Bạn chỉ có thể sử dụng rsync --cvs-exclude. Nó cũng bỏ qua các .gitthư mục.

Nhưng hãy cẩn thận, điều này cũng bỏ qua các thư mục được gọi corelà xảy ra trong các tệp nguồn Magento.


10
Điều này hoạt động cho .gitthư mục cấp cao nhất nhưng không phải cho các .gitthư mục trong mô hình con. Nó cũng không bỏ qua các tập tin Git như thế nào .gitmodules.
maxschlepzig
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.