Nhân bản repo vào máy cục bộ của nhà phát triển đã là một loại giả mạo. Nếu mỗi nhà phát triển tạo ra repo trên GitHub, điều này chỉ phục vụ để xuất bản trạng thái công việc hiện tại của họ.
Điều này có thể phù hợp khi có một repo chính trung tâm và nhiều người đóng góp không được tin cậy với quyền truy cập trực tiếp vào repo đó. Điều này hoạt động rất tốt cho các dự án nguồn mở, nơi mọi người có thể đóng góp và đưa ra yêu cầu kéo sau đó được xem xét và sáp nhập bởi một nhóm các nhà bảo trì cốt lõi. Sử dụng nhiều repos thực thi quy trình làm việc dựa trên yêu cầu kéo.
Trong một nhóm nhỏ, đáng tin cậy, điều này là không cần thiết. Để ngăn những người khác nhau tiếp cận nhau, một chiến lược như Git Flow có thể được thực hiện: Mỗi tính năng nhỏ được triển khai trên một nhánh tính năng riêng biệt. Khi tính năng hoàn thành, nó được hợp nhất vào nhánh chính. Hầu hết các đội sẽ kết hợp điều này với yêu cầu kéo hoặc đánh giá mã theo quy ước, nhưng đủ tin cậy để bỏ qua điều đó nếu thích hợp. Trong khi các repos riêng biệt sẽ dẫn đến một nhà phát triển xuất bản trạng thái hiện tại của họ trên các repos rẽ nhánh nhưng có thể nhìn thấy theo nhóm, trong một repo chung duy nhất họ sẽ đẩy các thay đổi của mình sang một nhánh tính năng riêng biệt. Thực hiện tất cả các phát triển trên master / trunk rất không được khuyến khích trong hầu hết các quy trình công việc.
Sự khác biệt cuối cùng chỉ là về quản lý truy cập và không quá nhiều về quy trình công việc được thực hiện. Bạn có thể thực hiện các quy trình công việc dựa trên yêu cầu kéo với thiết lập. Từ góc độ Git thô, không có nhiều khác biệt giữa một ngã ba và một nhánh - về cơ bản, chia sẻ về lịch sử của dự án và cho phép các cam kết được thêm vào mà không ảnh hưởng đến các nhánh / nhánh khác. Xem xét điều này, sẽ tốt hơn nhiều để chia sẻ một repo duy nhất khi trong một nhóm kín, đáng tin cậy.