Trong cộng đồng open source, việc sử dụng các Git hosting services đặc biệt được chú trọng. Các dự án open source có thể tập hợp hàng ngàn cộng tác viên từ khắp nơi trên thế giới, vì vậy việc có một địa điểm trung tâm, dễ truy cập để lưu trữ dự án là ưu tiên hàng đầu.
Trong bối cảnh hiện nay, GitHub và GitLab là hai lựa chọn phổ biến nhất. Cả hai đều cho phép lập trình viên tạo và lưu trữ các Git repository công khai, giúp những người muốn đóng góp dễ dàng tìm thấy dự án thông qua website của họ.
Cả hai cũng cung cấp các chức năng bổ sung như issue tracking, phân quyền, code review, pull requests, và diễn đàn thảo luận để kết nối các cộng tác viên từ khắp nơi.
Forks là các bản sao của một Git repository được tạo ra bởi Git hosting service. Nếu bạn thấy việc forking nghe rất giống với cloning, thì bạn đúng rồi đấy. Các forked repository hay thao tác forking thực chất không phải là lệnh mới, mà đằng sau đó (behind-the-scenes), chúng được tạo ra bằng chính lệnh git clone.
Forking thường được dùng cho các dự án open source để đơn giản hóa việc tiếp nhận đóng góp. Các quản trị viên thường khóa repository gốc và chỉ cho phép một nhóm người được quyền sửa đổi trực tiếp repository.
Vì các cộng tác viên mới không thể sửa đổi trực tiếp repository gốc, họ sẽ tạo một fork thay thế. Sau khi fork, cộng tác viên thực hiện thay đổi trên bản fork của riêng họ và gửi một pull request để yêu cầu tích hợp các thay đổi vào repository gốc. Các quản trị viên của repository gốc hoặc các bot tự động sẽ review pull request, đưa ra feedback và tự tay tích hợp các đóng góp mới đó.

Tạo một fork: Thay vì clone và push thay đổi trực tiếp vào một repository (điều bạn không có quyền làm), bạn yêu cầu Git hosting service tạo một bản sao phía máy chủ (server-side clone), gọi là một fork.
Clone fork: Sau khi fork xong, bạn tiến hành clone một bản sao của fork đó về máy tính của bạn.
Thực hiện thay đổi: Các commit và branch mới sẽ được tạo ra tại local. Sau đó, chúng được push lên bản fork lưu trên Git hosting service.
Tạo pull request: Sử dụng Git hosting service để mở một pull request. Hành động này sẽ thông báo cho các quản trị viên của repository gốc biết để review các đóng góp mới. Nếu được chấp thuận (approved), các đóng góp này sẽ được merge vào repository gốc.
Bản thân các forked repository và thao tác forking không phải là các lệnh của Git. Khi bạn yêu cầu Git hosting service tạo một fork, dịch vụ đó (ví dụ: GitHub, GitLab...) sẽ âm thầm sử dụng git clone để tạo một bản sao của repository cùng lịch sử của nó trên server. Sau khi fork, bạn có thể clone bản sao này về máy.
Dưới đây là hướng dẫn fork cho từng dịch vụ hosting:
Tiếp theo: Làm việc với nhiều remote repository