Vào ngày 24 tháng 4 năm 2026, chính sách huấn luyện mô hình của GitHub đã thay đổi với các gói Copilot cá nhân. GitHub giờ có thể dùng tương tác từ Copilot Free, Pro, Pro+ và Max, gồm cả đầu vào, đầu ra, đoạn mã và ngữ cảnh đi kèm, để huấn luyện và cải thiện mô hình AI trừ khi người dùng từ chối. Dữ liệu Copilot Business và Enterprise vẫn được bảo vệ theo Thỏa thuận Bảo vệ Dữ liệu của GitHub. Quan trọng là điều này liên quan tới dữ liệu tương tác với Copilot, không phải các kho riêng tư chỉ nằm yên trên GitHub.
Cùng lúc đó, các lập luận về di chuyển trở lại vì một lý do khác: những instance Git tự lưu trữ công khai đang hứng lượng lớn lưu lượng tự động. Một cuộc thảo luận trên Hacker News đã gom lại một tập hợp báo cáo hữu ích từ người vận hành về vấn đề đó: Kết thúc một thời kỳ với tôi: không còn git tự lưu trữ nữa.
Vậy còn lại một câu hỏi hữu ích hơn "GitHub hay tự lưu trữ?": bạn thực sự đang muốn giải quyết mối lo nào?
Phiên bản ngắn gọn
Ba câu trả lời. Chọn cái phù hợp với tình huống của bạn.
- A: Từ chối và ở lại. Dùng cách này khi thay đổi về huấn luyện của Copilot là mối lo duy nhất của bạn và GitHub vẫn đáp ứng nhu cầu vận hành của nhóm. Tắt thiết lập ở cấp tài khoản rồi quay lại làm việc.
- B: Chạy mô hình lai. Giữ mã nguồn mở công khai trên GitHub để tận dụng hiệu ứng mạng. Chuyển mã riêng tư sang một instance Forgejo, Gitea hoặc GitLab CE tự lưu trữ, đặt sau VPN hoặc danh sách IP cho phép. Dùng cách này khi vừa cần độ phủ công khai vừa cần kiểm soát riêng tư.
- C: Di chuyển toàn bộ. Đưa mọi thứ ra khỏi GitHub. Dùng cách này khi quy định, nơi lưu trữ dữ liệu, quản trị hoặc chính sách chỉ dùng phần mềm tự do loại GitHub ra, và nhóm chấp nhận được chi phí vận hành.
Phần lớn người đọc nằm ở vị trí A hoặc B. Vị trí C được biện minh bởi các yêu cầu chặt chẽ hơn về quản trị, chủ quyền dữ liệu hay giá trị, chứ không phải chỉ bởi thiết lập của Copilot.
Điều gì thực sự thay đổi vào tháng 4 năm 2026
Thay đổi về mặt kỹ thuật thì nhỏ. Trong phần thiết lập Copilot, người đăng ký cá nhân có thể đặt "Allow GitHub to use my data for AI model training" về Disabled. GitHub mô tả phần dữ liệu được đề cập là các tương tác với tính năng và dịch vụ của họ, gồm đầu vào, đầu ra, đoạn mã và ngữ cảnh đi kèm, chứ không phải nội dung kho riêng tư chưa từng đi qua Copilot.
Copilot Business và Enterprise không hiện công tắc này vì dữ liệu của chúng được bảo vệ theo Thỏa thuận Bảo vệ Dữ liệu của GitHub. Với gói cá nhân, tắt thiết lập giải quyết được mối lo về chính sách huấn luyện; nhưng không giải quyết phản đối rộng hơn về việc phụ thuộc vào một chính sách do nhà cung cấp nắm quyền.
Thay đổi của Copilot có thể là ngòi nổ mà không phải là toàn bộ lý do. Một nhóm cũng có thể quan tâm tới sự phụ thuộc nền tảng, danh tính gắn với GitHub, quy trình dựng quanh Actions, nơi lưu trữ dữ liệu, hoặc sau này chuyển đi lần nữa dễ tới đâu. Đó là những câu hỏi về di chuyển; công tắc huấn luyện chỉ là một thiết lập.
Sự phân biệt đó quan trọng: từ chối chỉ đổi một thiết lập về sử dụng dữ liệu, còn di chuyển đổi cả việc ai kiểm soát hạ tầng, danh tính, tích hợp và chính sách. Quyết định thứ hai kéo theo chi phí vận hành lớn hơn nhiều.
Giải thích ba vị trí
Quyết định gói gọn trong ba dòng. Chi tiết ở bên dưới.
| Mối lo của bạn | Câu trả lời | Cách Làm |
|---|---|---|
| Dữ liệu tương tác Copilot của tôi bị dùng để huấn luyện | Từ chối và ở lại (vị trí A) | Gạt thiết lập rồi quay lại làm việc |
| Mã riêng tư tôi không muốn đặt ở nhà cung cấp Mỹ + dự án nguồn mở đang sôi động mà tôi không muốn giấu | Mô hình lai (vị trí B) | Tự lưu trữ kho riêng tư sau VPN; giữ mã nguồn mở công khai trên GitHub |
| Chủ quyền dữ liệu, ngành chịu quản lý, nguyên tắc chỉ dùng phần mềm tự do, độc lập hoàn toàn khỏi nhà cung cấp | Di chuyển toàn bộ (vị trí C) | Chuyển mọi thứ; dự trù chi phí vận hành |
Vị trí A: Từ chối và ở lại
Nếu bạn là lập trình viên đơn lẻ hoặc nhóm nhỏ có kho riêng tư và điều duy nhất bạn phàn nàn là mặc định về huấn luyện, thì đây là câu trả lời. Gạt một thiết lập: một phút, một lần. Tự lưu trữ: một hóa đơn VPS nho nhỏ, một chiến lược sao lưu bạn thực sự có kiểm thử, những tích hợp phải dựng lại vì chúng mặc định dùng xác thực GitHub, và thỉnh thoảng một đợt nâng cấp hay khôi phục rơi đúng lúc tệ nhất có thể.
Tự lưu trữ vẫn có thể đáng, nhưng chỉ khi khối việc lặp đi lặp lại đó mua về cho bạn thứ bạn thực sự cần.
Phản biện mạnh nhất: cái công tắc đó cũng là quyết định của nhà cung cấp. Năm 2026, GitHub chuyển từ mặc định không dùng dữ liệu tương tác này để huấn luyện sang mặc định có dùng, và họ có thể đổi chính sách lần nữa.
Nếu mối lo sâu xa của bạn là "tôi không bao giờ muốn một nhà cung cấp Mỹ tự ý ra quyết định về mã của tôi", thì không ô tick nào giải quyết được, và vị trí A là câu trả lời sai với bạn. Nhảy thẳng tới vị trí C.
Nhưng nếu mối lo của bạn cụ thể là "tôi không muốn dữ liệu tương tác Copilot hiện tại của mình bị đưa vào huấn luyện", và bạn sẵn sàng tin thiết lập của GitHub cho tới lần thay đổi kế tiếp, thì vị trí A là câu trả lời đúng rẻ nhất. Rẻ mà đúng thì chẳng có gì phải ngại.
Vị trí B: Chạy mô hình lai
Lưu trữ kiểu lai tách độ phủ công khai khỏi quyền kiểm soát riêng tư.
Cách chia rất đơn giản. Mã nguồn mở công khai ở lại GitHub: hiệu ứng mạng, nguồn người đóng góp, Dependabot và hệ sinh thái Actions đều là giá trị thật. Mã riêng tư chuyển sang một instance tự lưu trữ đặt sau VPN hoặc danh sách IP cho phép, không bao giờ với tới được từ internet công cộng.
Lý do cách này hiệu quả nằm ở đặc tính của mô hình mối đe dọa. Mối lo về huấn luyện Copilot chỉ áp dụng cho dữ liệu tương tác bạn gửi qua GitHub. Vấn đề lưu lượng từ trình thu thập AI (phần sau) chỉ áp dụng cho các instance truy cập được công khai. Một thiết lập lai riêng tư né được cả hai.
Với một nhóm riêng từ 2 đến 10 người, 2 vCPU và 4 GB RAM là điểm khởi đầu an toàn hơn cho Forgejo hoặc Gitea, và nên dư thêm nếu lập chỉ mục tìm kiếm, gói hoặc CI dùng chung máy. Hãy coi đó là cách tính cho Forgejo/Gitea, không phải cho GitLab CE: hướng dẫn cài đặt một node của GitLab khởi điểm ở 8 vCPU và 7,2 GB bộ nhớ, chưa tính tải CI.
Đừng phơi giao diện web ra cổng 80 hay 443. Hãy giới hạn ở lớp tường lửa, proxy, VPN hoặc mạng mesh. Runner CI có thể phục vụ cả hai phía.
Việc chọn nền tảng thay đổi bộ tính năng nhiều hơn cả bản thân mô hình lai. Forgejo và Gitea hợp với một forge riêng tư nhẹ nhàng hơn; GitLab CE hợp lý hơn khi bạn còn cần cả ngăn xếp CI/CD và registry tích hợp.
Sao lưu là việc trong tầm tay, nhưng đừng rút gọn nó thành một git bundle. Hướng dẫn nâng cấp chính thức của Forgejo coi bản sao lưu đáng tin cậy là một snapshot đồng bộ tại một thời điểm của toàn bộ vùng lưu trữ mà Forgejo dùng, và khi điều đó không khả thi thì dùng một Forgejo dump đi kèm một bản dump PostgreSQL hoặc MySQL riêng. Với cả Forgejo lẫn Gitea, hãy giữ chung kho mã, cơ sở dữ liệu, cấu hình, tệp đính kèm và dữ liệu LFS, để một bản sao ngoài máy chủ, và thử khôi phục thật.
Bản clone cục bộ của lập trình viên có thể khôi phục mã, nhưng không khôi phục được issue, người dùng, metadata của pull request, tệp đính kèm hay toàn bộ đối tượng LFS. Nếu sau này một fork riêng tư được công khai, lúc đó hãy đẩy nó lên một mirror trên GitHub.
Vị trí C: Di chuyển toàn bộ khi kiểm soát là một yêu cầu
Di chuyển toàn bộ hợp lý rõ nhất khi độc lập khỏi nhà cung cấp là một yêu cầu, không phải sở thích.
Ba nhóm nổi lên rõ: các nhóm thuộc ngành chịu quản lý, có quy định về kiểm toán, nơi lưu trữ dữ liệu hoặc kiểm soát nhà cung cấp khiến GitHub bị loại; các nhóm khu vực công hoặc ở EU mà yêu cầu chủ quyền là chính sách chứ không phải sở thích; và các tổ chức chỉ dùng phần mềm tự do, muốn rời hạ tầng thuộc sở hữu Microsoft và đã có sẵn người vận hành được dịch vụ Linux.
Cái giá là một VPS nhỏ, bảo trì liên tục và mất tích hợp. Phần người ta hay quên chính là mất tích hợp. Mọi thứ xác thực bằng "Sign in with GitHub" đều phải ở lại GitHub hoặc cần một nhà cung cấp danh tính riêng.
Hãy lập kế hoạch di chuyển quanh các phụ thuộc, chứ không chỉ quanh kho mã. Bản xem trước PR, Actions của bên thứ ba, bot, webhook, registry gói và các tích hợp "Sign in with GitHub" có thể cần thông tin đăng nhập mới, quy trình mới hoặc dịch vụ thay thế. Sao và người theo dõi không trở thành bản ghi gốc trên forge mới, nên dự án công khai cũng đánh mất một phần tín hiệu khám phá sẵn có.
Hãy chạy thử trước khi đổi remote chính thức: chuyển một kho mã tiêu biểu, dựng lại các tích hợp của nó, kiểm tra lịch sử issue và pull request, rồi ghi lại đường lùi. Việc so sánh nền tảng đến sau đợt rà soát phụ thuộc đó.
Với các nhóm muốn một mô hình quản trị phi lợi nhuận mà không phải tự vận hành máy chủ, Codeberg đáng cân nhắc.
Mẹo về chủ quyền dữ liệu. Nếu bạn chọn tự lưu trữ vì lý do lưu trú dữ liệu tại EU thì vị trí trung tâm dữ liệu có ý nghĩa. Những nơi như Frankfurt hay Amsterdam là lựa chọn nhàm chán nhưng đúng. Cái VPS rẻ nhất ở Virginia chẳng giúp gì cho DPA của bạn.
Chi phí vận hành của việc lưu trữ Git công khai
Tự lưu trữ công khai đặt một forge trước cùng loại lưu lượng tự động vốn tấn công bất kỳ ứng dụng nào mở ra internet, chỉ khác là trang kho mã có những đường dẫn tốn kém như khung nhìn blame, tệp lưu trữ và lịch sử commit. Các báo cáo dưới đây là trải nghiệm của từng người vận hành, không phải số đo chuẩn.
Trong cuộc thảo luận về Git tự lưu trữ nhắc tới ở trên, một người vận hành báo cáo 37.212.377 yêu cầu nhắm vào một instance cgit trong 60 ngày, với hơn 99% được phân loại là bot.
Trong cùng cuộc thảo luận, kstrauser kể đã kéo một instance Forgejo từ khoảng 600.000 yêu cầu mỗi ngày xuống còn chừng 1.000, nhưng chỉ sau khi chồng thêm một thử thách JavaScript và cookie lên các biện pháp thông thường.
Những người vận hành khác nhắc tới fail2ban, chặn theo GeoIP, đưa cả hệ tự trị vào hố đen định tuyến, và chuyển kho mã về lại các nền tảng có bên khác lo hạ tầng. Những báo cáo này cho thấy các kiểu hỏng có thể xảy ra, chứ không phải mốc lưu lượng dùng chung được.
Lý do kỹ thuật khiến việc này khó: giới hạn tốc độ đơn giản theo từng IP có thể vô hiệu trước lưu lượng xoay vòng qua proxy dân cư. Một đội trình thu thập có thể rải yêu cầu ra đủ nhiều IP để không địa chỉ nào trông có vẻ lạm dụng, trong khi máy chủ vẫn ngộp vì tổng lượng.
Thử thách JavaScript hoặc cookie có thể giảm bớt việc thu thập thô sơ, nhưng cũng có thể chặn người dùng không bật JavaScript và cản trở Git qua HTTPS nếu áp lên mọi đường dẫn. Bộ nhớ đệm CDN giúp ích cho các lượt đọc lặp lại; nó giúp ít hơn nhiều với những endpoint độc nhất hoặc tốn kém như tệp lưu trữ, khung nhìn blame và trang của từng commit.
Điều mà một thử thách làm thay đổi là bài toán kinh tế. Anubis đứng chắn trước một forge và bắt máy khách hoàn thành một thử thách, chẳng hạn một phép tính proof-of-work nhỏ, trước khi máy chủ trả về trang được bảo vệ, khiến việc thu thập quy mô lớn trở nên đắt đỏ hơn. Đó là biện pháp giảm nhẹ, không phải bảo đảm.
Hãy áp dụng thử thách trình duyệt một cách có chọn lọc. Giữ SSH sẵn sàng cho các thao tác Git, và thử Git qua HTTPS trước khi bảo vệ đường dẫn đó; một trang thử thách trả về cho máy khách Git sẽ thành một lần clone thất bại, chứ không phải một bước xác minh hữu ích.
GitHub hấp thụ lớp lưu lượng này như một phần dịch vụ họ vận hành. Một instance Forgejo hay cgit công khai để lại cho bạn việc hoạch định năng lực, kiểm soát lạm dụng, bộ nhớ đệm và các biện pháp giảm nhẹ. Chính sự chuyển giao gánh nặng vận hành đó, chứ không phải giá phần mềm, mới là phần quan trọng của quyết định di chuyển.
Đó là lý do mô hình lai là lựa chọn hạng nhất, không phải phương án dự phòng. Mã riêng tư nằm sau VPN: trình thu thập không với tới được. Mã nguồn mở công khai trên GitHub: hạ tầng chống lạm dụng của GitHub lo phần lưu lượng bot.
Nếu bạn vẫn muốn một forge công khai tự lưu trữ, hãy dự trù cho log, kiểm soát tốc độ, bộ nhớ đệm, biện pháp chống bot, giám sát, và một đường đi đã kiểm chứng cho lưu lượng Git không phụ thuộc vào thử thách trình duyệt. Hãy coi việc chống trình thu thập là một phần của vận hành thường ngày, không phải tình huống hiếm gặp.
Câu hỏi về hiệu ứng mạng dành cho người bảo trì dự án nguồn mở
Ở đây tôi đang nói với một kiểu độc giả rất cụ thể: bạn bảo trì một dự án nguồn mở. Hai mươi người đóng góp, hai trăm sao và một trình theo dõi issue còn sôi động. Và bạn đang tính chuyển nó khỏi GitHub.
Hãy thành thật về thứ bạn đang đánh đổi: khả năng được người đóng góp tìm thấy, dấu tin cậy ngầm của github.com, Dependabot, CodeQL, và hệ sinh thái bên thứ ba dựa trên xác thực GitHub. Không thứ nào là bất khả thi ở nơi khác; nhưng tất cả đều thành ma sát.
Quy tắc ngón tay cái tôi muốn đưa ra: nếu giá trị dự án của bạn nằm chủ yếu ở phần mã, việc tự lưu trữ dễ biện minh hơn.
Mã nguồn thì đi theo được. Nhưng nếu giá trị của nó phụ thuộc nhiều vào người đóng góp, issue, khả năng hiển thị trên tìm kiếm và niềm tin gắn với github.com, thì rời đi tức là đánh đổi một phần thứ khiến dự án chạy được để lấy thứ khiến người bảo trì thấy dễ chịu hơn. Một cuộc đổi chác chính đáng nếu lý do của bạn đủ lớn. Một cuộc đổi chác tồi nếu bạn làm chỉ để chứng minh điều gì đó.
Trang giới thiệu nền tảng Codeberg mô tả một dịch vụ dựa trên Forgejo do tổ chức phi lợi nhuận Codeberg e.V. vận hành. Với người bảo trì dự án nguồn mở, điều đó nghĩa là có quản trị cộng đồng mà không phải gánh việc bảo trì một forge do mình tự chạy.
Với các nhóm thiên về nguồn mở muốn có quản trị cộng đồng mà không phải gánh nghĩa vụ nâng cấp, đó là một bước nhảy vận hành nhỏ hơn so với tự chạy một forge công khai. SourceHut lại là một thay đổi quy trình có chủ đích hơn nhiều và cần đánh giá riêng.
Hãy thay đổi ít nhất mà vẫn giải quyết được vấn đề
Trước khi đổi remote, hãy viết yêu cầu ra trong một câu: dừng việc huấn luyện trên dữ liệu tương tác Copilot, tách hạ tầng công khai khỏi riêng tư, hoặc loại GitHub khỏi kiến trúc. Nếu bạn không gọi tên được yêu cầu đó, thì khoan hãy di chuyển.
Với một cuộc di chuyển, hãy thí điểm trên một kho mã tiêu biểu trước. Hãy liệt kê đầy đủ phần xác thực, Actions, webhook, việc phát hành gói, môi trường xem trước, lịch sử issue, dữ liệu LFS và các bước lùi lại, trước khi đổi remote chính thức.
Của Cloudzy triển khai Forgejo chỉ với một cú nhấp là cách nhanh để dựng phía riêng tư của một mô hình lai; còn cài đặt thủ công trên bất kỳ Linux VPS cũng ổn. Dù chọn hướng nào, hãy giữ giao diện web ở chế độ riêng tư, sao lưu toàn bộ trạng thái ứng dụng, và thử khôi phục trước khi chuyển một kho mã quan trọng.
Xây dựng trên VPS Linux với quyền root, NVMe và sức mạnh AMD EPYC.
Xem các gói LinuxQuyền kiểm soát chỉ hữu ích khi nó giải quyết được yêu cầu ở mức chi phí vận hành mà nhóm bạn gánh nổi lâu dài.
Câu hỏi thường gặp
Tôi có nên rời GitHub vì thay đổi về huấn luyện của Copilot không?
Không tự nhiên mà nên. Nếu mối lo duy nhất của bạn là dữ liệu tương tác Copilot bị dùng để huấn luyện mô hình, thì tắt thiết lập ở cấp tài khoản là cách sửa đúng và nhỏ nhất. Di chuyển chỉ hợp lý khi bạn còn cần kiểm soát chặt hơn về nơi lưu trữ dữ liệu, quản trị, độc lập khỏi nhà cung cấp, hoặc chính sách chỉ dùng phần mềm tự do.
GitHub có huấn luyện trên toàn bộ kho riêng tư của tôi không?
Không. Thay đổi chính sách bàn ở đây bao gồm dữ liệu tương tác Copilot thuộc diện áp dụng, gồm đầu vào, đầu ra, đoạn mã và ngữ cảnh đi kèm được gửi qua Copilot. Điều đó không có nghĩa mọi kho riêng tư lưu trên GitHub đều tự động bị dùng để huấn luyện mô hình.
Tự lưu trữ Git có luôn riêng tư hơn không?
Chỉ khi bạn vận hành nó theo cách đó. Một forge riêng tư đặt sau VPN hoặc danh sách IP cho phép có thể giảm mức phơi bày, nhưng một instance truy cập được công khai lại thêm vào trách nhiệm vá lỗi, giám sát, chống bot, kiểm soát truy cập và sao lưu, những thứ mà GitHub thường gánh hộ.
Nên chọn nền tảng Git tự lưu trữ nào?
Chọn Forgejo hoặc Gitea nếu bạn muốn một forge riêng tư nhẹ nhàng hơn. Chọn GitLab CE khi CI/CD tích hợp cùng registry gói hoặc container quan trọng đủ để bù cho yêu cầu tài nguyên và bảo trì cao hơn của nó.
Forgejo hay Gitea cần VPS cỡ nào cho một nhóm nhỏ?
Với một nhóm riêng từ hai đến mười người, 2 vCPU và 4 GB RAM là điểm khởi đầu an toàn hơn. Hãy tăng tài nguyên khi lập chỉ mục tìm kiếm, gói, kho mã lớn hoặc runner CI dùng chung máy. Tính riêng cho GitLab CE, vì nó cần nhiều tài nguyên hơn.
Tôi nên kiểm thử gì trước khi đổi remote chính thức?
Hãy thí điểm trên một kho mã tiêu biểu. Kiểm tra lịch sử issue và pull request, xác thực, Actions hoặc quy trình CI thay thế, webhook, việc phát hành gói, dữ liệu LFS, môi trường xem trước, bản sao lưu, việc khôi phục và đường lùi, trước khi chuyển toàn bộ.
