Lịch sử của git
git là một trong những công cụ đó rất đơn giản để sử dụng, mà bạn thường xuyên không phát hiện ra rất nhiều sắc thái với nó. Bạn kết thúc việc nhân bản một kho lưu trữ từ web cũng như đó là về nó. Nếu bạn thực hiện thay đổi, có lẽ bạn cũng như thể theo dõi chúng như thể bạn thực sự lịch sự, bạn có thể tạo ra yêu cầu kéo để cung cấp lại cho dự án. Tuy nhiên, có một thỏa thuận tuyệt vời nhiều hơn bạn có thể làm. Ví dụ: bạn có hiểu rằng git có thể theo dõi các tài liệu từ hợp tác không? Hoặc quản lý dữ liệu khởi động của bạn trên một số hộp linux?
Git thuộc về một hộ gia đình các sản phẩm ứng dụng phần mềm thực hiện điều khiển sửa đổi (hoặc phiên bản). Khái niệm là bạn có thể thiết lập ứng dụng phần mềm (ví dụ) cũng như theo dõi từng bản sửa đổi. Các hệ thống tuyệt vời có các quy định để cho phép một số người làm việc tại một thời điểm. Tương tự như vậy, thường là một số phương pháp để chia một công việc thành các phần khác nhau. Ví dụ: bạn có thể tách ra để thiết lập một phiên bản sản phẩm cho một thị trường khác hoặc để thử một chức năng thử nghiệm mà không phá vỡ sự phát triển điển hình. Trong một số trường hợp, cuối cùng bạn sẽ mang lại điều đó vào dòng chính.
Mặc dù trong phần tiếp theo, tôi sẽ cung cấp cho bạn một số sử dụng lạ cho Git, bạn có thể khám phá hữu ích, công bố này chủ yếu là câu chuyện về chính xác Git đã đến như thế nào. Tiến bộ nguồn mở được hiểu về các cuộc chiến ngọn lửa cũng như có ít nhất một vài trong câu chuyện này. Cũng như trong thời trang Hacker thực sự, anh hùng của câu chuyện quyết định anh ta không thích các công cụ anh ta sử dụng như vậy … tốt, bạn sẽ làm gì?
Cuộc chiến của bộ điều khiển phiên bản
Trong lịch sử, rất nhiều ứng dụng phần mềm đã thực hiện chức năng này có tư duy máy chủ trung tâm. Đó là, mã sống trên mạng ở đâu đó. Khi bạn muốn làm việc trên dữ liệu bạn sẽ kiểm tra nó. Điều này chỉ hoạt động nếu không ai khác đã kiểm tra. Tất nhiên, nếu bạn thành công, không ai khác có thể kiểm tra dữ liệu của bạn cho đến khi bạn đặt lại chúng. Nếu bạn rời khỏi mạng cũng như bạn muốn làm việc trên một cái gì đó, cũng xấu.
Tuy nhiên, các công cụ đương đại hơn thư giãn một vài trong số những hạn chế này. Lý tưởng nhất là một công cụ có thể cung cấp cho bạn một bản sao khu vực của một công việc cũng như ngay lập tức giữ các bản sao khác được cập nhật khi bạn phát hành các thay đổi. Phương pháp này không có bản sao trung tâm nào để thua, bạn có thể làm việc ở bất cứ đâu, cũng như bạn không phải phối hợp làm việc với những thứ khác nhau với các đồng đội khác.
Công cụ đóng
Một nhóm phân phối cực lớn thiết lập Kernel Linux. Cuối năm 1998, nhóm nghiên cứu đã có một thời gian khó khăn với quản lý sửa đổi. Một nhà phát triển kernel, [Larry McVoy], đã có một doanh nghiệp đã tạo ra một phiên bản phân tán có thể mở rộng quản lý sản phẩm có tên Bitkeeper. Mặc dù đó là một sản phẩm công nghiệp, có một giấy phép khu phố cho phép bạn sử dụng nó miễn là bạn không làm việc trên một công cụ đối chiếu trong khi bạn sử dụng sản phẩm cũng như trong một năm sau đó. Các giới hạn được sử dụng cho cả công nghiệp cũng như cạnh tranh nguồn mở. Mặc dù sản phẩm vẫn giữ nhiều dữ liệu trên máy của bạn, nhưng thực tế, có một thành phần máy chủ, vì vậy việc kinh doanh có thể theo dõi việc sử dụng sản phẩm của bạn.
Năm 2002, đội ngũ Kernel Linux ôm lấy Bitkeeper. [Linux Torvalds] là một trong những người đề xuất của hệ thống mới. Tuy nhiên, các nhà thiết kế khác (và các lễ kỷ niệm quan tâm như [Richard Stallman] lo ngại về việc sử dụng một công cụ độc quyền để thiết lập nguồn mở. Bitmover – doanh nghiệp đằng sau Bitkeeper – thêm một số cửa ngõ để đảm bảo rằng các nhà thiết kế muốn sử dụng một hệ thống khác nhau có thể, với một số mức độ.
Đối với hầu hết các phần, những thứ im lặng chỉ với những cuộc đụng độ ngọn lửa thỉnh thoảng phun trào ngay tại đây cũng như ở đó. Đó là lên đến năm 2005 khi doanh nghiệp của [McVoy] tiết lộ, nó sẽ ngừng phiên bản miễn phí của Bitkeeper. Lý do là do một cá nhân thiết lập một khách hàng đã thêm các tính năng từ phiên bản công nghiệp đến miễn phí.
Công cụ mới
Kết quả là, hai công việc sẽ quay nhiều như thiết lập một sự thay thế. Mercurial là một cũng như Git, tất nhiên, là người khác. [McVoy] đã liên lạc với một khách hàng công nghiệp đòi hỏi công nhân của họ [Bryan O’Sullivan] ngừng đóng góp cho Mercurial, mà ông đã làm. Tất nhiên, cả hai Mercurial cũng như Git đã đến với kết quả, với Git kết thúc không chỉ là phiên bản quản lý phiên bản của đội Kernel tuy nhiên hệ thống cho rất nhiều người khác.
Sinh của git.
[Linus] đã tìm kiếm thêm một hệ thống ngoài khơi. Không có gì tại thời điểm có hiệu suất hoặc các tính năng phù hợp với đội tiến bộ kernel. Ông đã thiết kế Git cho tốc độ, sự đơn giản, cũng như để ngăn chặn việc thực hiện các điều tương tự chính xác mà CVS (một chương trình quản lý phiên bản đã được biên dịch) đã làm.
Tiến bộ ban đầu được tuyên bố là đã mất vài ngày. Kể từ phiên bản 1.0 phát hành vào cuối năm 2005, ứng dụng phần mềm đã sinh ra nhiều hơn một trang web lớn cũng như đã kết thúc là hệ thống tùy chọn cho nhiều nhà phát triển, cả nguồn mở, cũng như thương mại.
Repo man.
Biểu đồ dòng chảy cho thấy trick chính xác cách git xử lý các ưu đãi lớn của nhà phát triển cùng một lúc: kho hoặc repos. Mỗi nhà thiết kế có một bản sao tổng thể của toàn bộ công việc (kho lưu trữ khu vực). Trên thực tế, nếu bạn không quan tâm đến việc chia sẻ, bạn thậm chí không yêu cầu một kho lưu trữ từ xa. Repo cá nhân của bạn là một công việc git đầy đủ tính năng như bất kỳ ai khác, thậm chí là một công việc từ xa, rất có thể trên github hoặc một máy chủ mạng nữa. Bạn thực hiện các sửa đổi của mình trong thư mục làm việc, giai đoạn những gì bạn đang “làm” với (bây giờ), cũng như dành cho Repo của bạn. Khi đó là thời gian, bạn đẩy các sửa đổi của mình nhiều như điều khiển từ xa cũng như được hợp nhất với những thay đổi của người khác.
Thật thú vị, Git không chỉ hoạt động trên dữ liệu văn bản (tôi sẽ chỉ cho bạn nhiều hơn về điều đó trong phần tiếp theo). Tuy nhiên, nó hoạt động tốt nhất trên dữ liệu văn bản vì nó khôn ngoan đủ để nhận thấy các sửa đổi trong dữ liệu không chồng chéo cũng như tự động hợp nhất chúng. Vì vậy, nếu tôi sửa lỗi bao gồm một vòng lặp cho một số mã cũng như bạn sửa đổi một số thông báo lỗi, git sẽ loại tất cả khi mã của chúng tôi hợp nhất.
Tất nhiên không phải lúc nào cũng hoạt động. Điều đó dẫn đến xung đột mà bạn phải giải quyết thủ công. Tuy nhiên, trừ khi bạn có hai người chạm vào chính xác các phần chính xác của mã, Git thường thực hiện một nhiệm vụ tốt đẹp để giải quyết sự khác biệt. Tất nhiên, dữ liệu nhị phân thường không có được sự sang trọng đó. Bạn không thể xác định chính xác một biểu tượng để thấy rằng một người đã vẽ ria mép trên nó cũng như một người nữa đã biến nền xanh. Tuy nhiên, về mặt kỹ thuật, nếu bạn có thể tìm ra thuật toán, bạn có thể thêm nó vào git.
Từ chối.
Nếu bạn muốn tăng cường sự hiểu biết của bạn về git ngoài cách đó chỉ cần thực hiện một bản sao, bạn có thể làm tồi tệ hơn là dành 15 phút cho hướng dẫn này. Nếu bạn đã hiểu những điều cơ bản, bạn có thể khám phá một số điều mới trong một hướng dẫn nâng cao hơn hoặc kiểm tra video của một cuộc nói chuyện [linus] được cung cấp trên git a trong thời gian quay lại.
Vào năm 2016, nhân tiện, Bitkeeper tiết lộ họ sẽ chuyển sang giấy phép Apache, tất nhiên, là nguồn mở. Loại mỉa mai, phải không?
Tín ảnh:
Soldier Tux, bởi [Sharkey], CC BY-SA 3.0
[Linus Torvalds] từ Tạp chí Linux, CC By-SA 3.0
Lưu đồ bằng [LBHTW], CC BY-SA 3.0