GitHub

**GitHub** là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa trên nền web cho các dự án phát triển phần mềm. GitHub cung cấp cả phiên bản trả tiền lẫn miễn phí cho các tài khoản. Các dự án mã nguồn mở sẽ được cung cấp kho lưu trữ miễn phí. Tính đến tháng 4 năm 2016, GitHub có hơn 14 triệu người sử dụng với hơn 35 triệu kho mã nguồn, làm cho nó trở thành máy chủ chứa mã nguồn lớn trên thế giới.

Github đã trở thành một yếu tố có sức ảnh hưởng trong cộng đồng phát triển mã nguồn mở. Thậm chí nhiều nhà phát triển đã bắt đầu xem nó là một sự thay thế cho sơ yếu lý lịch và một số nhà tuyển dụng yêu cầu các ứng viên cung cấp một liên kết đến tài khoản Github để đánh giá ứng viên.

Vào ngày 4 tháng 6 năm 2018, Microsoft đã thông báo việc đạt được thỏa thuận mua lại GitHub với giá 7,5 tỷ Đô la Mỹ. Ngày chính thức chuyển nhượng quyền sở hữu không được công bố.

## Dịch vụ

### Github
Sự phát triển của nền tảng GitHub bắt đầu vào ngày 19 tháng 10 năm 2007. Trang web được đưa ra vào tháng 4 năm 2008 do Tom Preston-Werner, Chris Wanstrath, và PJ Hyett thực hiện sau khi nó đã được hoàn thành một vài tháng trước đó, xem như giai đoạn beta.

Dự án trên Github có thể được truy cập và thao tác sử dụng một giao diện dòng lệnh và làm việc với tất cả các lệnh Git tiêu chuẩn. Github cũng cho phép người dùng đăng ký và không đăng ký được duyệt kho công cộng trên trang web. Github cũng tạo ra nhiều client và plugin cho máy tính để bàn.

Trang web cung cấp các chức năng mạng xã hội như feed, theo dõi, wiki (sử dụng phần mềm Gollum Wiki) và đồ thị mạng xã hội để hiển thị cách các nhà phát triển làm việc trên kho lưu trữ.

Một người sử dụng phải tạo ra một tài khoản cá nhân để đóng góp nội dung lên Github, nhưng các kho mã nguồn công cộng có thể được duyệt và tải về với bất cứ ai. Với một người dùng đã đăng ký tài khoản, họ có thể thảo luận, quản lý, tạo ra các kho, đóng góp cho kho của người dùng khác, và xem xét thay đổi mã.

GitHub cũng có một dịch vụ khác: một trang web kiểu pastebin gọi là Gist, dùng để lưu trữ các đoạn mã; trong khi Github sẽ được cho lưu trữ các dự án lớn hơn. Một dịch vụ lưu trữ khác được gọi là Speaker Deck.

Các phần mềm chạy GitHub được viết bằng Ruby on Rails và Erlang bởi GitHub, Inc, phát triển bởi Chris Wanstrath, PJ Hyett, và Tom Preston-Werner.

Hệ thống kiểm soát phiên bản (VCS) - ghi lại thay đổi vào một tập tin hoặc thiết lập các tập tin theo thời gian để có thể nhớ lại các phiên bản cụ thể sau.

#### Phạm vi

GitHub chủ yếu được sử dụng để lưu trữ mã nguồn phần mềm, nhưng cũng thường được sử dụng với nhiều loại tập tin như Final Cut hoặc các tài liệu Word.

Ngoài mã nguồn, Github hỗ trợ các định dạng và các tính năng sau đây:

* 3D làm cho các tập tin mà có thể được xem trước bằng cách sử dụng tích hợp trình xem file STL mới hiển thị các tập tin trên một khung 3D. Người xem được hỗ trợ bởi WebGL và Three.js.
* Nguồn gốc định dạng PSD của Photoshop có thể được xem trước và so với các phiên bản trước của cùng một tập tin.
* Lồng nhiệm vụ danh sách
* Tài liệu và Wiki
* Các trang web nhỏ có thể được lưu trữ từ kho công cộng trên Github. Định dạng URL là http://projectname.github.io. Và có thể được tạo ra bằng cách bắt đầu một kho lưu trữ được định dạng như projectname.io
* Code Snippets (bằng cách sử dụng tên miền phụ Gist)
* Theo dõi vấn đề và tính năng yêu cầu
* Trực quan của dữ liệu không gian địa lý
* Biểu đồ Gantt

### Gists
GitHub cũng vận hành một trang web kiểu pastebin có tên là Gist, dành cho các đoạn mã, trái ngược với GitHub, dành cho các dự án lớn hơn. Tom Preston-Werner đã giới thiệu tính năng này tại một hội nghị Ruby vào năm 2008.

Gist xây dựng dựa trên khái niệm đơn giản truyền thống về pastebin bằng cách thêm kiểm soát phiên bản cho các đoạn mã, dễ dàng phân nhánh và được mã hóa TLS cho các gists riêng tư. Bởi vì mỗi "gists" là kho lưu trữ Git của riêng nó, nhiều đoạn mã có thể được chứa trong một trang duy nhất và chúng có thể được đẩy và kéo (push and pull) bằng cách sử dụng Git.

Người dùng chưa đăng ký có thể tải lên Gists cho đến ngày 18 tháng 2 năm 2018, khi việc tải lên gists chỉ có sẵn cho những người dùng đã đăng nhập, được báo cáo là để giảm thiểu việc spam.

URL của gists sử dụng ID hệ thập lục phân và các chỉnh sửa đối với gists được ghi lại trong lịch sử sửa đổi, lịch sử này có thể hiển thị sự khác biệt về văn bản của ba mươi bản sửa đổi trên mỗi trang với tùy chọn giữa chế độ xem "phân tách" và "hợp nhất". Giống như kho lưu trữ, Gists có thể được phân nhánh, "gắn dấu sao", tức là được đánh dấu công khai và nhận xét. Số lượng các bản sửa đổi, số sao và phân nhánh được hiển thị trên trang chính.

### Github dành cho doanh nghiệp
Github cho doanh nghiệp cũng hoạt động giống github.com, nhưng hỗ trợ phiên bản trả phí cho các doanh nghiệp muốn bảo vệ mã nguồn của mình, không công khai ra cộng đồng.

### Việc làm
Một trong những nguồn thu nhập khác của Github là *GitHub Jobs*  nơi sử dụng lao động có thể gửi lời mời làm việc với giá 450$/tháng. Nhân viên bán hàng của GitHub không được trả lương trên cơ sở hoa hồng.

## Phổ biến
* *24 tháng 2 năm 2009,* trong một cuộc nói chuyện tại Yahoo! trụ sở thành viên trong nhóm GitHub công bố trong một cuộc nói chuyện tại trụ sở trên Yahoo! rằng trong năm đầu tiên GitHub hoạt động, nó tích lũy 46.000 kho công cộng, 17.000 trong số họ trong tháng trước đó một mình. Vào thời điểm đó, khoảng 6.200 kho đã được chia hai ít nhất một lần và 4.600 sáp nhập.
* *05 tháng 7 năm 2009,* một Blog Github bài thông báo họ đạt đến 100.000 người sử dụng nhãn hiệu. Trong một buổi nói chuyện giao tại Yahoo ngày 27 tháng 7 năm 2009, Tom Preston-Werner thông báo rằng những con số này đã tăng lên 90.000 kho công cộng, 12.000 đã được chia hai ít nhất một lần, với tổng số 135.000 kho. Vào tháng 7 năm 2010, GitHub thông báo rằng nó chứa 1 triệu kho. Vào tháng 4 năm 2011, số lượng kho lưu trữ đã tăng lên 2 triệu.
* *Tháng 7 năm 2012,* Peter Levine, đối tác ở nhà đầu tư GitHub của Andreessen Horowitz, nói rằng GitHub đã được phát triển doanh thu 300% mỗi năm kể từ năm 2008 "có lợi nhuận suốt từ đó đến giờ".

* *16 tháng 1 năm 2013,* GitHub thông báo đã đạt 3 triệu người sử dụng và lưu trữ hơn 5 triệu kho.

## Xem thêm

* Git (phần mềm)
* Linux
* Mã nguồn mở

## Tham khảo mới