Hầu hết trong số đó đến với sở thích cá nhân.
Tôi theo dõi mọi thứ tôi làm cho một dự án trong Git. Đặc biệt là vì Git xử lý hầu hết các loại tệp, thậm chí là nhị phân, đủ hiệu quả. (Thay cho Altium SVN tích hợp vô nghĩa)
Một trong những lý do chính của tôi là vì khách hàng của tôi không cảm thấy Dropbox đủ an toàn và tôi cần một hệ thống sao lưu mà tôi có thể truy cập trên toàn thế giới, với một số bối cảnh phiên bản trên hầu hết những gì tôi làm. Vì vậy, tôi đã thiết lập một máy chủ Git riêng và hệ thống sao lưu được mã hóa và nó hoạt động. Bảng, Sơ đồ, Mã, Tài liệu, Báo cáo, Sửa đổi thủ công, mọi thứ đều được theo dõi.
Tôi thường sẽ tạo một Kho lưu trữ cho Phần cứng, một cho Phần mềm và một cho Phần sụn nếu đó là một dự án lớn, có khả năng hoạt động lâu dài, nhưng đối với các dự án dịch vụ nhỏ, ví dụ hoặc thử nghiệm nhỏ tôi thường đặt tất cả vào một kho lưu trữ, vì kết quả sự hỗn loạn sẽ không lớn.
Trong Git, bạn cũng có thể sử dụng các kho lưu trữ phụ để tích hợp Firmware vào dự án Phần cứng hoặc theo cách khác, ngay cả khi chúng là các kho được quản lý riêng.
Đối với các dự án lớn hơn, tôi cũng thường sử dụng các hệ thống theo dõi lỗi để theo dõi các vấn đề và giải quyết, một lần nữa cho CTNH cũng như SW, Mantis là một hệ thống tốt có thể được sử dụng miễn phí.
Đối với các phiên bản phần cứng tôi tạo ra Gerbers hoặc bất cứ thứ gì có bạn, được gắn thẻ Git Hash cho phiên bản đó, những Gerbers đó là những thứ được phiên bản "lỗi thời" riêng biệt trong các thư mục của R01, 02, v.v. Vì bạn không muốn luôn luôn tạo lại chúng, nhưng chúng là các tệp kết quả nên không nên được phiên bản trong chính Git (vì phần mềm thiết kế của bạn phải có tính quyết định với việc tạo nội dung sản xuất, hoặc nếu không ...).
Nếu có điều gì đó thú vị trong R01 không xảy ra trong R02 (hoặc ngược lại), bạn có hai Git Hashing mà bạn có thể so sánh các tệp nguồn, không phải lo lắng.
Như một lưu ý cuối cùng, một ví dụ khái niệm về một dự án, sẽ có một kho lưu trữ Phần cứng, cũng lưu trữ tệp "BoardPinout.h". Tệp này được bao gồm dưới dạng tệp được phiên bản từ xa vào kho lưu trữ Phần sụn, có một vài tệp định nghĩa giao diện được đưa vào từ xa vào kho Phần mềm.
Có nghĩa là mỗi khi tôi thay đổi một vài tín hiệu mà không sửa đổi chức năng rộng, dự án CTNH "cập nhật" BoardPinout, sau đó có thể được cập nhật và sử dụng trong Firmware, v.v.