Git là một trong những hệ thống kiểm soát phân phối được sử dụng rộng rãi nhất được mô tả bởi các nhà phát triển trên toàn thế giới như dịch vụ VCS số một. Nó chỉ chạy từ thiết bị đầu cuối, nhưng có một số giao diện người dùng có sẵn để tải xuống.
Đây là một ứng dụng hệ điều khiển phiên bản miễn phí và mã nguồn mở có thể xử lý cả các dự án lớn và nhỏ với hiệu quả và tốc độ tối đa. Chương trình có thể dễ dàng mô tả là nhỏ, nhanh và phân phối.
Tùy chọn dòng lệnh
Chương trình đi kèm với một số ít lệnh mà có thể dễ dàng ghi nhớ bởi bất cứ ai từ get-go. Tất cả các hoạt động được thực hiện tại địa phương, và đã được thiết kế để làm việc trên hạt nhân Linux.
Các lệnh được bao gồm thêm, bisect, branch, checkout, clone, commit, diff, fetch, grep, init, log, merge, mv, pull, push, rebase, reset, rm, show, status và tag. Bạn có thể dễ dàng tìm hiểu từng lệnh bằng cách chạy lệnh git - help từ cửa sổ terminal.
Tính năng trong nháy mắt
Khi sử dụng Git, người dùng sẽ có thể thêm các tệp tin, kiểm tra chi nhánh hoặc đường dẫn, kho lưu trữ nhân bản, tạo reposit Git trống, tham gia nhiều lịch sử phát triển, hiển thị trạng thái cây làm việc, thay đổi bản ghi, cũng như để tạo, liệt kê xóa các chi nhánh.
Ngoài ra, ứng dụng này cho phép người dùng xem các thay đổi giữa cam kết và cây làm việc, in các hàng phù hợp với một mẫu, xem các bản ghi cam kết, các tài liệu tải về và các đối tượng, đổi tên hoặc di chuyển các tệp, liên kết và thư mục, cập nhật từ xa và loại bỏ các tập tin từ một cây làm việc.Mặt trước đồ hoạ khác nhau tồn tại
Thậm chí nếu đó là một phần mềm chỉ dùng dòng lệnh, các giao diện người dùng đồ họa khác nhau (GUI) có sẵn, bao gồm git-cola, SmartGit, GitEye, cười khúc khích và gitg. Dự án vượt trội các tiện ích SCM (Quản lý Cấu hình Phần mềm), chẳng hạn như CVS, Subversion, ClearCase và Perforce, bằng cách có chi nhánh địa phương rẻ tiền, nhiều luồng công việc và khu vực dàn xếp thuận tiện.
Dòng dưới cùng
Tổng kết, Git là một hệ thống kiểm soát phiên bản miễn phí có tính năng hiệu suất nhanh, rất dễ học và có một dấu vết rất nhỏ. Với Git bạn có thể thực hiện chuyển đổi ngữ cảnh không có ma sát, các dòng mã dựa trên vai trò, quy trình làm việc dựa trên tính năng và thử nghiệm dùng một lần.
Tính năng mới trong bản phát hành này: p>
- Một chức năng trợ giúp để đọc một dòng toàn bộ thành lỗi OOM strbuf đã kích hoạt sai lầm ở EOF theo các điều kiện nhất định đã được sửa.
- Thêm vào & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; đã được dạy cho & quot; git send-email & quot; như là một cách hợp lệ để nói với nó rằng nó cũng cần gửi một bản sao bằng carbon trong đoạn trailer.
- Khắc phục sự hồi quy đến & quot; gitk --bisect & quot; bằng bản cập nhật gần đây.
- Không giống như & quot; git commit-tree & lt; tập tin & quot ;, & quot; git commit-tree -F tệp & quot; đã không vượt qua nội dung của tập tin nguyên văn và thay vào đó hoàn thành một dòng không đầy đủ ở cuối, nếu tồn tại. Loại thứ hai đã được cập nhật để phù hợp với hành vi của người trước đây.
- & quot; git archive & quot ;, đặc biệt khi sử dụng với pathspec, lưu trữ một thư mục rỗng trong đầu ra của nó, mặc dù chính Git không bao giờ làm như vậy. Điều này đã được khắc phục.
- Chống lỗi API cũng xảy ra với cảnh báo từ GCC.
- & quot; git gc & quot; cố gắng tránh chạy hai trường hợp cùng một lúc bằng cách đọc và viết pid / host từ và đến một tệp khóa; nó đã sử dụng định dạng fscanf không chính xác () khi đọc, đã được sửa chữa.
- Người kiểm tra đã được dạy rằng chúng tôi không thích & quot; echo -e & quot;.
- Mã số cmp.std.c nitpick.
- & quot; git mô tả --match & quot; học cách lấy nhiều mẫu trong loạt v2.13 nhưng tính năng này đã bỏ qua các mẫu sau mẫu đầu tiên và không hoạt động. Điều này đã được khắc phục.
- & quot; git cat-file --textconv & quot; bắt đầu gần đây, đã được sửa chữa.
- Mẫu được xây dựng để phát hiện & quot; tiêu đề chức năng & quot; đối với HTML không khớp với các phần tử không có thuộc tính, đã được sửa.
- & quot; git mailinfo & quot; đã được lỏng lẻo trong giải mã trích dẫn in và sản xuất rác thải khi hai chữ cái sau khi dấu bằng không phải là thập lục phân. Điều này đã được khắc phục.
- Tài liệu cho '-X' cho sự hợp nhất đã được viết sai lệch để gợi ý rằng & quot; -s theirs & quot; tồn tại, đó không phải là trường hợp.
- Đánh vần tên hệ thống của chúng tôi là & quot; Git & quot; trong đầu ra từ tập lệnh yêu cầu-kéo.
- Các bản sửa lỗi cho một số vấn đề truy cập bộ nhớ không được đảm bảo bởi valgrind.
- Backports tương đương về đạo đức năm 2015 khắc phục cuộc thi thăm dò ý kiến từ gnulib ngược dòng để khắc phục sự cố đột xuất trên HPE NonStop.
- Trong phần & quot; - format = ... & quot; tùy chọn & quot; git for-each-ref & quot; lệnh (và bạn bè, tức là chế độ niêm yết của & quot; git branch / tag & quot;), & quot;% (atom:) & quot; (ví dụ: & quot;% (refname:) & quot ;, & quot;% (body:) & quot; được sử dụng để báo lỗi. Thay vào đó, hãy coi chúng là dấu hai chấm và chuỗi trống rỗng theo sau nó không có ở đó.
- Người dùng có & quot; color.ui = luôn & quot; trong cấu hình của họ đã bị phá vỡ bởi một thay đổi gần đây đã làm cho các lệnh ống nước chú ý đến chúng như là các miếng vá được tạo ra nội bộ bởi & quot; git add -p & quot; đã được màu (heh) và không sử dụng được. Điều này đã được khắc phục.
- & quot; git branch -M a b & quot; trong khi trên một chi nhánh hoàn toàn không liên quan đến chi nhánh hoặc chi nhánh b bị hỏng khi nhiều worktree đã được sử dụng. Điều này đã được khắc phục.
- & quot; git xuất khẩu nhanh & quot; với tùy chọn -M / -C ban hành & quot; sao chép & quot; hướng dẫn trên một đường dẫn được sửa đổi đồng thời, điều này không chính xác.
- Lệnh điểm kiểm tra "git fast-import" không cập nhật refs và đánh dấu trừ khi ít nhất một đối tượng được tạo ra kể từ điểm kiểm tra cuối cùng, đã được sửa chữa, vì những điều này có thể xảy ra mà không có đối tượng mới nào được tạo ra.
- Các tập lệnh để điều khiển TravisCI đã được tổ chức lại và sau đó là một cách tối ưu để tránh các chu kỳ chi tiêu trên một chi nhánh đã được gắn nhãn tip đã được triển khai.
- & quot; git fetch: & quot; cho phép một tên đối tượng ở bên cạnh khi phía bên kia chấp nhận một yêu cầu như vậy vì Git v2.5, nhưng tài liệu đã bị lỗi.
- Hồi quy trong 2,11 đã làm cho mã để đọc danh sách các cửa hàng đối tượng thay thế đã xâm nhập vào cuối chuỗi đã được sửa.
- Một chức năng trợ giúp để đọc một dòng toàn bộ thành lỗi OOM strbuf đã kích hoạt sai lầm ở EOF theo các điều kiện nhất định đã được sửa.
- Thêm vào & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; đã được dạy cho & quot; git send-email & quot; như là một cách hợp lệ để nói với nó rằng nó cũng cần gửi một bản sao bằng carbon trong đoạn trailer.
- Khắc phục sự hồi quy đến & quot; gitk --bisect & quot; bằng bản cập nhật gần đây.
- Không giống như & quot; git commit-tree & lt; tập tin & quot ;, & quot; git commit-tree -F tệp & quot; đã không vượt qua nội dung của tập tin nguyên văn và thay vào đó hoàn thành một dòng không đầy đủ ở cuối, nếu tồn tại. Loại thứ hai đã được cập nhật để phù hợp với hành vi của người trước đây.
- & quot; git archive & quot ;, đặc biệt khi sử dụng với pathspec, lưu trữ một thư mục rỗng trong đầu ra của nó, mặc dù chính Git không bao giờ làm như vậy. Điều này đã được khắc phục.
- Chống lỗi API cũng xảy ra với cảnh báo từ GCC.
- & quot; git gc & quot; cố gắng tránh chạy hai trường hợp cùng một lúc bằng cách đọc và viết pid / host từ và đến một tệp khóa; nó đã sử dụng định dạng fscanf không chính xác () khi đọc, đã được sửa chữa.
- Người kiểm tra đã được dạy rằng chúng tôi không thích & quot; echo -e & quot;.
- Mã số cmp.std.c nitpick.
- & quot; git mô tả --match & quot; học cách lấy nhiều mẫu trong loạt v2.13 nhưng tính năng này đã bỏ qua các mẫu sau mẫu đầu tiên và không hoạt động. Điều này đã được khắc phục.
- & quot; git cat-file --textconv & quot; bắt đầu gần đây, đã được sửa chữa.
- Mẫu được xây dựng để phát hiện & quot; tiêu đề chức năng & quot; đối với HTML không khớp với các phần tử không có thuộc tính, đã được sửa.
- & quot; git mailinfo & quot; đã được lỏng lẻo trong giải mã trích dẫn in và sản xuất rác thải khi hai chữ cái sau khi dấu bằng không phải là thập lục phân. Điều này đã được khắc phục.
- Tài liệu cho '-X' cho sự hợp nhất đã được viết sai lệch để gợi ý rằng & quot; -s theirs & quot; tồn tại, đó không phải là trường hợp.
- Đánh vần tên hệ thống của chúng tôi là & quot; Git & quot; trong đầu ra từ tập lệnh yêu cầu-kéo.
- Các bản sửa lỗi cho một số vấn đề truy cập bộ nhớ không được đảm bảo bởi valgrind.
- Backports tương đương về đạo đức năm 2015 khắc phục cuộc thi thăm dò ý kiến từ gnulib ngược dòng để khắc phục sự cố đột xuất trên HPE NonStop.
- Trong phần & quot; - format = ... & quot; tùy chọn & quot; git for-each-ref & quot; lệnh (và bạn bè, tức là chế độ niêm yết của & quot; git branch / tag & quot;), & quot;% (atom:) & quot; (ví dụ: & quot;% (refname:) & quot ;, & quot;% (body:) & quot; được sử dụng để báo lỗi. Thay vào đó, hãy coi chúng là dấu hai chấm và chuỗi trống rỗng theo sau nó không có ở đó.
- Người dùng có & quot; color.ui = luôn & quot; trong cấu hình của họ đã bị phá vỡ bởi một thay đổi gần đây đã làm cho các lệnh ống nước chú ý đến chúng như là các miếng vá được tạo ra nội bộ bởi & quot; git add -p & quot; đã được màu (heh) và không sử dụng được. Điều này đã được khắc phục.
- & quot; git branch -M a b & quot; trong khi trên một chi nhánh hoàn toàn không liên quan đến chi nhánh hoặc chi nhánh b bị hỏng khi nhiều worktree đã được sử dụng. Điều này đã được khắc phục.
- & quot; git xuất khẩu nhanh & quot; với tùy chọn -M / -C ban hành & quot; sao chép & quot; hướng dẫn trên một đường dẫn được sửa đổi đồng thời, điều này không chính xác.
- Lệnh điểm kiểm tra "git fast-import" không cập nhật refs và đánh dấu trừ khi ít nhất một đối tượng được tạo ra kể từ điểm kiểm tra cuối cùng, đã được sửa chữa, vì những điều này có thể xảy ra mà không có đối tượng mới nào được tạo ra.
- Các tập lệnh để điều khiển TravisCI đã được tổ chức lại và sau đó là một cách tối ưu để tránh các chu kỳ chi tiêu trên một chi nhánh đã được gắn nhãn tip đã được triển khai.
- & quot; git fetch: & quot; cho phép một tên đối tượng ở bên cạnh khi phía bên kia chấp nhận một yêu cầu như vậy vì Git v2.5, nhưng tài liệu đã bị lỗi.
- Hồi quy trong 2,11 đã làm cho mã để đọc danh sách các cửa hàng đối tượng thay thế đã xâm nhập vào cuối chuỗi đã được sửa.
- Một chức năng trợ giúp để đọc một dòng toàn bộ thành lỗi OOM strbuf đã kích hoạt sai lầm ở EOF theo các điều kiện nhất định đã được sửa.
- Thêm vào & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; đã được dạy cho & quot; git send-email & quot; như là một cách hợp lệ để nói với nó rằng nó cũng cần gửi một bản sao bằng carbon trong đoạn trailer.
- Khắc phục sự hồi quy đến & quot; gitk --bisect & quot; bằng bản cập nhật gần đây.
- Không giống như & quot; git commit-tree & lt; tập tin & quot ;, & quot; git commit-tree -F tệp & quot; đã không vượt qua nội dung của tập tin nguyên văn và thay vào đó hoàn thành một dòng không đầy đủ ở cuối, nếu tồn tại. Loại thứ hai đã được cập nhật để phù hợp với hành vi của người trước đây.
- & quot; git archive & quot ;, đặc biệt khi sử dụng với pathspec, lưu trữ một thư mục rỗng trong đầu ra của nó, mặc dù chính Git không bao giờ làm như vậy. Điều này đã được khắc phục.
- Chống lỗi API cũng xảy ra với cảnh báo từ GCC.
- & quot; git gc & quot; cố gắng tránh chạy hai trường hợp cùng một lúc bằng cách đọc và viết pid / host từ và đến một tệp khóa; nó đã sử dụng định dạng fscanf không chính xác () khi đọc, đã được sửa chữa.
- Người kiểm tra đã được dạy rằng chúng tôi không thích & quot; echo -e & quot;.
- Mã số cmp.std.c nitpick.
- & quot; git mô tả --match & quot; học cách lấy nhiều mẫu trong loạt v2.13 nhưng tính năng này đã bỏ qua các mẫu sau mẫu đầu tiên và không hoạt động. Điều này đã được khắc phục.
- & quot; git cat-file --textconv & quot; bắt đầu gần đây, đã được sửa chữa.
- Mẫu được xây dựng để phát hiện & quot; tiêu đề chức năng & quot; đối với HTML không khớp với các phần tử không có thuộc tính, đã được sửa.
- & quot; git mailinfo & quot; đã được lỏng lẻo trong giải mã trích dẫn in và sản xuất rác thải khi hai chữ cái sau khi dấu bằng không phải là thập lục phân. Điều này đã được khắc phục.
- Tài liệu cho '-X' cho sự hợp nhất đã được viết sai lệch để gợi ý rằng & quot; -s theirs & quot; tồn tại, đó không phải là trường hợp.
- Đánh vần tên hệ thống của chúng tôi là & quot; Git & quot; trong đầu ra từ tập lệnh yêu cầu-kéo.
- Các bản sửa lỗi cho một số vấn đề truy cập bộ nhớ không được đảm bảo bởi valgrind.
- Backports tương đương về đạo đức năm 2015 khắc phục cuộc thi thăm dò ý kiến từ gnulib ngược dòng để khắc phục sự cố đột xuất trên HPE NonStop.
- Trong phần & quot; - format = ... & quot; tùy chọn & quot; git for-each-ref & quot; lệnh (và bạn bè, tức là chế độ niêm yết của & quot; git branch / tag & quot;), & quot;% (atom:) & quot; (ví dụ: & quot;% (refname:) & quot ;, & quot;% (body:) & quot; được sử dụng để báo lỗi. Thay vào đó, hãy coi chúng là dấu hai chấm và chuỗi trống rỗng theo sau nó không có ở đó.
- Người dùng có & quot; color.ui = luôn & quot; trong cấu hình của họ đã bị phá vỡ bởi một thay đổi gần đây đã làm cho các lệnh ống nước chú ý đến chúng như là các miếng vá được tạo ra nội bộ bởi & quot; git add -p & quot; đã được màu (heh) và không sử dụng được. Điều này đã được khắc phục.
- & quot; git branch -M a b & quot; trong khi trên một chi nhánh hoàn toàn không liên quan đến chi nhánh hoặc chi nhánh b bị hỏng khi nhiều worktree đã được sử dụng. Điều này đã được khắc phục.
- & quot; git xuất khẩu nhanh & quot; với tùy chọn -M / -C ban hành & quot; sao chép & quot; hướng dẫn trên một đường dẫn được sửa đổi đồng thời, điều này không chính xác.
- Lệnh điểm kiểm tra "git fast-import" không cập nhật refs và đánh dấu trừ khi ít nhất một đối tượng được tạo ra kể từ điểm kiểm tra cuối cùng, đã được sửa chữa, vì những điều này có thể xảy ra mà không có đối tượng mới nào được tạo ra.
- Các tập lệnh để điều khiển TravisCI đã được tổ chức lại và sau đó là một cách tối ưu để tránh các chu kỳ chi tiêu trên một chi nhánh đã được gắn nhãn tip đã được triển khai.
- & quot; git fetch: & quot; cho phép một tên đối tượng ở bên cạnh khi phía bên kia chấp nhận một yêu cầu như vậy vì Git v2.5, nhưng tài liệu đã bị lỗi.
- Hồi quy trong 2,11 đã làm cho mã để đọc danh sách các cửa hàng đối tượng thay thế đã xâm nhập vào cuối chuỗi đã được sửa.
- Bản phát hành này sẽ chuyển tiếp bản sửa lỗi cho & quot;
- * Một hàm trợ giúp lấy nội dung của một đối tượng cam kết và tìm thấy dòng chủ đề của nó đã không bỏ qua các dòng trắng hàng đầu, như thường được thực hiện bởi các đoạn mã khác. Làm cho nó bỏ qua các hàng trống trắng đầu tiên để khớp.
- Git không biết nội dung trong chỉ mục nên là đường dẫn được thêm vào với "git add -N" nào, vì vậy "git grep --cached" không nên hiển thị số truy cập (hoặc không có số truy cập, với -L ) theo cách như vậy, nhưng logic đó không áp dụng cho "git grep", tức là tìm kiếm trong các tệp cây làm việc. Nhưng chúng tôi đã nhầm lẫn, đã được sửa chữa.
- "git rebase -i --autostash" đã không khôi phục lại thay đổi tự động khi thao tác bị hủy bỏ.
- "git commit --amend --allow-empty-message -S" đối với cam kết mà không có bất kỳ cơ thể thông báo nào có thể đã xác định sai vị trí của tiêu đề của đối tượng cam kết.
- Thêm các cập nhật đánh dấu lên chuỗi ký tự mà người dùng cuối sẽ gõ vào phông chữ chiều rộng cố định.
- Trong một thời gian dài, chúng tôi đã thực hiện một nhận xét trong mã rằng sản lượng màu của chúng tôi chỉ có thể hoạt động khi chúng tôi sử dụng fprintf / fputs trên Windows, điều này không còn là trường hợp trong vài năm qua.
- "gc.autoPackLimit" khi đặt thành 1 không nên kích hoạt lại khi chỉ có một gói hàng, nhưng mã được tính kém và đã làm như vậy.
- Một phần của "git am" có một chức năng trợ giúp của người kỳ quặc gọi là công cụ từ bên ngoài "của mình" chứ không phải gọi những gì chúng tôi có "của chúng tôi", mà không phải là giới tính và cũng không phù hợp với phần còn lại của hệ thống, nơi các thứ bên ngoài được gọi là "theirs" trái ngược với "ours".
- Khung kiểm tra đã học được một người trợ giúp mới test_match_signal để kiểm tra mã thoát khỏi bị giết bởi một tín hiệu mong đợi.
- "git blame-M" đã bỏ qua một dòng duy nhất được di chuyển trong tệp.
- Khắc phục các codepaths gần đây đã được giới thiệu trong quá trình hoạt động submodule song song, điều này đã khiến quá trình đọc quá sớm và có thể lãng phí CPU trong khi cố gắng viết dưới dạng trường hợp góc.
- "git grep -i" đã được hướng dẫn cách xếp trường hợp ở vị trí không phải ascii một cách chính xác.
- Một bài kiểm tra sử dụng "mktemp" vô điều kiện đã học được rằng lệnh này không nhất thiết phải có ở mọi nơi.
- "git blame file" cho phép dòng dõi các dòng trong nội dung không bị giam giữ, chưa được dỡ bỏ của "file" để kiểm tra, nhưng nó bị từ chối khi "file" không xuất hiện trong cam kết hiện tại. Khi "tệp" được tạo bằng cách đổi tên một tệp hiện có (nhưng thay đổi vẫn chưa được thực hiện) thì hạn chế này không cần thiết.
- "git add -N dir / file & amp; & amp; git write-tree" tạo ra cây không chính xác khi có các đường dẫn khác trong cùng thư mục sắp xếp sau "tệp".
- "git fetch http: // user: pass @ host / repo ..." lau chùi phần userinfo, nhưng "git push" thì không.
- Lỗi tuổi già gây ra lỗi "git diff --ignore-space-at-eol" đã được khắc phục.
- "git notes merge" có một mã để xem nếu một đường dẫn tồn tại (và không thành công nếu nó tồn tại) và sau đó mở đường dẫn để viết (khi nó không). Thay thế bằng mở O_EXCL.
- "git pack-objects" và "git index-pack" chủ yếu hoạt động với off_t khi nói về sự bù đắp của các đối tượng trong một gói tin, nhưng có một số ít các địa điểm sử dụng "unsigned long" để giữ giá trị đó, dẫn đầu để cắt ngắn không định trước.
- Cập nhật gần đây cho "git daemon" cố gắng kích hoạt KEEPALIVE mức độ socket, nhưng khi nó được sinh ra thông qua inetd, trình mô tả tập tin đầu vào tiêu chuẩn có thể không nhất thiết phải được kết nối với ổ cắm. Ngăn chặn một lỗi ENOTSOCK từ setsockopt ().
- FreeBSD gần đây đã ngừng tạo perl tại / usr / bin / perl; chuyển đổi mặc định đường dẫn tích hợp vào / usr / local / bin / perl trên các phiên bản FreeBSD quá cũ.
- "trạng thái git" đã học để gợi ý "merge --abort" trong một cuộc hợp nhất mâu thuẫn, giống như nó đã gợi ý "rebase --abort" trong thời gian rebase mâu thuẫn.
- Nguồn .c / .h được đánh dấu như vậy trong tệp .gitattributes của chúng tôi để "git diff -W" và bạn bè sẽ hoạt động tốt hơn.
- Kiểm tra autoconf hiện tại cho sự cần thiết phải liên kết với thư viện pthread đã không kiểm tra tất cả các chức năng từ các thư viện pthread; gần đây FreeBSD có một số chức năng trong libc nhưng không phải là những người khác, và chúng tôi nghĩ nhầm lẫn liên kết với libc là đủ khi nó không.
- Cho phép kiểm tra daemon http trong các thử nghiệm CI của Travis.
- Người dùng chức năng API parse_options_concat () cần phân bổ thêm các khe trước và điền chúng vào OPT_END () khi họ muốn tự động quyết định tập hợp các tùy chọn được hỗ trợ, điều này làm cho mã dễ bị lỗi và khó đọc. Điều này đã được điều chỉnh bằng cách tinh chỉnh API để phân bổ và trả lại một bản sao mới của mảng "struct option".
- Việc sử dụng strbuf trong "git rm" để xây dựng tên tệp để xóa là một phần dưới tối ưu, đã được sửa.
- "git commit --help" cho biết "--no-verify" chỉ là bỏ qua móc móc trước khi cam kết, và không thể nói rằng nó cũng bỏ qua hook hook-msg.
- "git merge" trong Git v2.9 đã được dạy để cấm kết hợp các đường không liên quan của lịch sử theo mặc định, nhưng đó chính xác là kiểu "--rejoin" của "git subtree" (trong contrib /) muốn làm. "git subtree" đã được dạy sử dụng tùy chọn "--allow-unrelated-histories" để ghi đè lên mặc định.
- Thủ tục xây dựng cho trình trợ giúp "git persistent-https" (trong contrib /) đã được cập nhật để có thể được xây dựng bằng các phiên bản Go gần đây.
- Có một sự tối ưu hóa được sử dụng trong "git diff $ treeA $ treeB" để mượn một bản sao đã kiểm tra trong cây làm việc khi nó được biết là giống như blob được so sánh, mong rằng mở / mmap của một tệp nhanh hơn đọc nó từ cửa hàng đối tượng, liên quan đến việc bơm phồng và áp dụng đồng bằng. Tuy nhiên, điều này đã được kích hoạt ngay cả khi bản copy đã kiểm tra cần phải chuyển đổi sang chuyển đổi sang git (bao gồm cả bộ lọc sạch), nó đánh bại toàn bộ các điểm của tối ưu hóa. Tối ưu hóa đã bị tắt khi chuyển đổi là cần thiết.
- "git -c grep.patternType = đăng nhập mở rộng --basic-regexp" không hoạt động vì API nội bộ để truy cập vào máy móc thiết bị grep đã không được thiết kế tốt.
- Cổng Windows đã không thực hiện được một số kiểm tra trong t4130, do thiếu inum trong các giá trị trả về do mô phỏng lstat (2) của nó.
- Các ký tự trong nhãn được hiển thị cho thẻ / refs cho cam kết trong sản phẩm "gitweb" hiện đã được thoát khỏi đúng đầu ra HTML chính xác.
- FreeBSD có thể nói dối khi được yêu cầu mtime của một thư mục, làm cho bộ nhớ cache không được theo dõi rơi trở lại một đường dẫn chậm, do đó gây ra các xét nghiệm trong t7063 thất bại vì nó muốn xác minh hành vi của đường dẫn nhanh.
- Cảnh báo trình biên dịch Squelch cho thư viện netmalloc (trong thư viện compat /).
- Tài liệu API cho hashmap không rõ ràng nếu hashmap_entry có thể được loại bỏ an toàn mà không cần phải xem xét gì khác. Bảo đảm rằng làm như vậy an toàn.
- Việc ghi đè lên "git am" chưa bắt đầu thực hiện các cuộc gọi nội bộ vào máy móc cam kết đã có hồi quy không mong đợi, dù rằng có bao nhiêu giây để áp dụng nhiều bản vá, thì dấu thời gian của committer cho các cam kết đều giống nhau.
- "git difftool ..." bắt đầu trong thư mục con không giải thích đường dẫn liên quan đến thư mục đó đã được sửa.
- Khi "git daemon" được chạy mà không có thời gian chờ - [init-] được chỉ định, kết nối từ máy khách mà không hoạt động âm thầm có thể treo cổ trong một thời gian dài, lãng phí tài nguyên. KEEPALIVE mức độ ổ cắm đã được bật để cho phép hệ điều hành nhận diện các kết nối không thành công như vậy.
- Các lệnh trong gia đình `git log` chiếm% C (tự động) trong một chuỗi định dạng tùy chỉnh. Điều này vô điều kiện bật màu sắc, bỏ qua - không màu hoặc với --color = tự động khi đầu ra không được kết nối với một tty; điều này đã được chỉnh sửa để làm cho định dạng thực sự hoạt động như "tự động".
- "git rev-list --count" có chiều dài đi bộ được giới hạn với tùy chọn "-n" không hoạt động tốt với tính toán được tối ưu hóa để xem chỉ mục bitmap.
- "git show -W" (mở rộng gờ để che toàn bộ chức năng, được phân cách bởi các dòng phù hợp với mô hình "funcname") được sử dụng để hiển thị toàn bộ tệp tin khi một thay đổi đã thêm toàn bộ chức năng vào cuối tệp, đã được sửa chữa.
- Bộ tài liệu đã được cập nhật để các lệnh chữ, biến cấu hình và các biến môi trường luôn được sắp xếp theo phông chữ chiều rộng cố định và đậm trong manpages.
- "lệnh con" git svn propset "đã được thêm vào trong 2,3 ngày được ghi lại ngay bây giờ.
- Tài liệu cố gắng liên tục đánh vần "GPG"; khi đề cập đến tên chương trình cụ thể, "gpg" được sử dụng.
- "git reflog" dừng lại khi thấy mục nhập biểu thị sự kiện tạo nhánh (aka "unborn"), làm cho nó xuất hiện như thể reflog đã được cắt ngắn.
- Scriptlet nhắc lệnh git (trong contrib /) không thân thiện với những người sử dụng "set -u", đã được sửa.
- Một codepath đã sử dụng alloca (3) để đặt một lượng dữ liệu không bị chặn trên stack đã được cập nhật để tránh làm như vậy.
- "git update-index --add --chmod = + x file" có thể sử dụng được như là một lối thoát hiểm, nhưng không phải là một điều thân thiện để buộc những người cần sử dụng nó thường xuyên. "git add - chmod = + x file" có thể được sử dụng thay thế.
- Xây dựng các cải tiến cho gnome-keyring (trong contrib /)
- "trạng thái git" được sử dụng để nói "thư mục làm việc" khi nó có nghĩa là "cây làm việc".
- Các nhận xét về việc phá vỡ vỏ FreeBSD đã được làm rõ với số phiên bản (9.x và trước khi bị hỏng, các phiên bản mới hơn là OK).
- "git cherry-pick A" làm việc trên một chi nhánh chưa sinh, nhưng "git cherry-pick A..B" thì không.
- "git add -i / -p" đã học để tôn vinh núm thí nghiệm diff.compactionHeuristic, để người dùng có thể làm việc trên cùng một phần lớn như "git diff" output.
- "log --graph --format =" đã biết rằng "% & gt; | (N)" chỉ định chiều rộng liên quan đến cạnh trái của đầu cuối, không liên quan đến vùng để vẽ văn bản ở bên phải tổ tiên -phần ảnh. Bây giờ nó cũng chấp nhận âm N có nghĩa là giới hạn cột là tương đối với đường biên bên phải.
- Quy tắc quyền sở hữu cho phần bộ nhớ chứa tài liệu tham khảo được tìm nạp trong "git fetch" đã được làm sạch.
- "git bisect" thực hiện cuộc gọi nội bộ tới "git diff-tree" khi bisection tìm ra thủ phạm, nhưng cuộc gọi này không khởi tạo cấu trúc dữ liệu để chuyển tới API của cây khác.
- Định dạng của các dữ liệu khác nhau (và cách xác minh chúng) nơi chúng tôi sử dụng chữ ký GPG đã được ghi lại.
- Giải quyết hồi quy không mong đợi trong v2.9 phá vỡ "clone -depth" đệ quy xuống submodules bằng cách buộc các submodules cũng được nhân bản nông, mà nhiều trường hợp máy chủ lưu trữ ngược dòng các submodules không được chuẩn bị.
- Khắc phục sự lãng phí không cần thiết trong việc sử dụng thành ngữ ': $ {VAR = default}' để đặt giá trị mặc định, không kèm theo dấu nháy kép.
- Một số mã nền tảng cụ thể có các khai báo nghiêm ngặt không phải ANSI của các hàm C mà không lấy bất kỳ tham số nào đã được sửa.
- Mã nội bộ được sử dụng để hiển thị múi giờ địa phương bù đắp không chuẩn bị để xử lý dấu thời gian vượt quá năm 2100 và đưa ra giá trị bù đắp không đúng cho người gọi. Sử dụng lệnh tìm kiếm +0000 thay thế lành hơn và để "git log" vào trường hợp như vậy thay vì hủy bỏ.
- Một trong số bốn lần triệu tập readlink (1) trong bộ thử nghiệm của chúng tôi đã được viết lại để thử nghiệm có thể chạy trên các hệ thống mà không có lệnh này (những người khác đang ở trong khung kiểm tra valgrind và t9802).
- t / perf nhu cầu / usr / bin / thời gian với phần mở rộng GNU; lời gọi của nó được cập nhật thành "gtime" trên Darwin.
- Một lỗi, gây ra "git p4" trong khi chạy dưới chế độ tiết tiết để báo cáo các đường dẫn bị bỏ qua do tiền tố chi nhánh không chính xác, đã được sửa; lệnh đã nói "Bỏ qua tệp bên ngoài tiền tố" cho các đường dẫn _inside _.
- Tài liệu hướng dẫn cấp cao "git help git" vẫn chỉ vào bộ tài liệu được lưu trữ tại kho lưu trữ google-code đã ngừng hoạt động. Hãy cập nhật nó để trỏ đến https://git.github.io/htmldocs/git.html.
- Mục đích "make rpmbuild" bị hỏng vì đầu vào của nó, git.spec.in, không được cập nhật để khớp với tệp mà nó mô tả đã được đổi tên gần đây. Điều này đã được khắc phục.
- Theo truyền thống, các thử nghiệm thử các lệnh hoạt động trên các nội dung trong cây làm việc được đặt tên với "worktree" trong tên tệp của chúng, nhưng với sự bổ sung gần đây của lệnh "git worktree", có các bài kiểm tra cũng được đặt tên tương tự, nó có trở nên khó hơn để nói với họ ngoài. Các bài kiểm tra truyền thống đã được đổi tên thành sử dụng "cây làm việc" thay vào đó nhằm phân biệt chúng.
- Nhiều codepaths quên kiểm tra giá trị trả về từ git_config_set (); chức năng được thực hiện để chết () để đảm bảo chúng ta không tiến hành khi thiết lập một biến cấu hình không thành công.
- Xử lý lỗi khi viết vào quá trình không đồng bộ nội bộ của chúng tôi đã được thực hiện mạnh mẽ hơn, làm giảm sự bốc mùi trong các thử nghiệm của chúng tôi.
- "git show 'HEAD: Foo [BAR] Baz'" không giải thích đối số như một rev, nghĩa là đối tượng được đặt tên bởi tên đường dẫn với ký tự đại diện trong một đối tượng cây.
- "git rev-parse --git-common-dir" được sử dụng trong tính năng worktree bị hỏng khi chạy từ một thư mục con.
- Lệnh "v (iew)" của lệnh "git am -i" tương tác đã bị hỏng trong khung thời gian 2.6.0 khi lệnh đã được viết lại trong C.
- "git merge-tree" dùng để làm rối tung "cả hai bên thêm vào" xung đột với chính mình "tạo ra một tệp tổ tiên giả mạo có những phần chung của cả hai bên đã được thêm vào và làm một logic hợp nhất 3 chiều; điều này đã được cập nhật để sử dụng phương pháp "hợp nhất 3 chiều với một blob trống rỗng làm phương pháp tiếp cận tập tin giả mạo phổ biến giả" được sử dụng trong phần còn lại của hệ thống.
- Quy tắc sở hữu bộ nhớ của API fill_textconv () hơi phức tạp, đã được ghi lại một chút.
- Tài liệu không nêu rõ rằng chế độ 'đơn giản' bây giờ là mặc định cho "git push" khi cấu hình push.default không được đặt.
- Các phiên bản gần đây của GNU grep rất phức tạp khi đầu vào của chúng chứa dữ liệu nhị phân tùy ý, mà một số thử nghiệm của chúng tôi sử dụng. Viết lại các bài kiểm tra để tránh sự cố.
- Một hàm trợ giúp "git submodule" sử dụng từ v2.7.0 để liệt kê các mô-đun phù hợp với đối số pathspec cho các tiểu trình của nó (ví dụ: "submodule add") đã được sửa.
- "git config section.var value" để đặt một giá trị trong tập tin cấu hình per-repository không thành công khi nó chạy bên ngoài bất cứ kho nào, nhưng không nói lý do chính xác.
- Mã để đọc dữ liệu gói sử dụng số lần lưu trữ được lưu trữ trong tệp idx gói đã được kiểm tra cẩn thận hơn tính hợp lệ của dữ liệu trong idx.
- Máy móc kết hợp cấp thấp đã được dạy cách sử dụng chấm dứt dòng CRLF khi chèn các dấu mâu thuẫn vào nội dung đã hợp nhất mà chính bản thân họ đã chấm dứt CRLF.
- "git worktree" có một mã lỗi cố gắng tự động sửa lỗi có thể xảy ra do người dùng cuối di chuyển một worktree đến những nơi khác mà không nói cho Git (kho gốc cần duy trì backpointers để worktrees của nó, nhưng "mv" do người dùng cuối không quen với thực tế này rõ ràng sẽ không điều chỉnh chúng), điều này thực sự làm cho mọi thứ tồi tệ hơn khi kích hoạt.
- "git push --force-with-lease" đã được giảng dạy để báo cáo nếu sự thúc đẩy cần thiết để buộc (hoặc chuyển tiếp nhanh).
- Lệnh "yes" được sử dụng trong các kịch bản thử nghiệm của chúng tôi đã được tinh chỉnh không phải dành quá nhiều thời gian để tạo ra các đầu ra không cần thiết mà không được sử dụng, để giúp những người kiểm tra trên Windows nơi nó sẽ không dừng lại cho đến khi nó tràn bộ đệm ống để thiếu SIGPIPE.
- Phần phụ trợ vimdiff cho "git mergetool" đã được tinh chỉnh để sắp xếp và số lượng bộ đệm theo thứ tự phù hợp với kỳ vọng của đa số người đọc trái sang phải, sau đó xuống và gán các bộ đệm 1 2 3 4 "tâm thần" đến các cơ sở nội bộ từ xa hợp nhất các cửa sổ dựa trên thứ tự đó.
- Tài liệu cho "git clean" đã được sửa chữa; nó đã đề cập rằng .git / modules / * được gỡ bỏ bằng cách đưa ra hai "-f", điều này chưa bao giờ xảy ra.
- Các đường dẫn đã được thông báo về chỉ mục về "add -N" vẫn chưa hoàn toàn trong chỉ mục, nhưng một vài lệnh hoạt động như thể đã có trong một cách có hại.
- Cũng bao gồm tài liệu nhỏ và cập nhật kiểm tra.
- Tập lệnh "configure" đã không kiểm tra cho -lpthread một cách chính xác, gây rối cho một số trình liên kết.
- Thêm hỗ trợ cho nói chuyện http / https qua proxy vớ.
- Sửa chữa tính linh hoạt cho Windows, có thể ghi đè biến $ SHELL bằng cách sử dụng các đường dẫn không phải là POSIX.
- Giờ đây, chúng ta nhất quán cho phép tất cả các móc nối bỏ qua đầu vào tiêu chuẩn của chúng, thay vì phải git phàn nàn về SIGPIPE.
- Sửa trích dẫn vỏ trong tập lệnh contrib.
- Kiểm tra sửa lỗi di động cho một chủ đề trong v2.6.1.
- Cho phép mở rộng dấu ngã trong một số biến số http config.
- Cung cấp một trường hợp đặc biệt hữu ích "diff / show --word-diff-regex =". làm ví dụ trong tài liệu.
- Khắc phục trường hợp góc trong nhánh lọc.
- Làm cho git-p4 hoạt động trên đầu tách ra.
- Làm rõ tài liệu cho "check-ignore" mà không có "--verbose".
- Giống như cây làm việc được dọn dẹp khi người dùng hủy bỏ việc gửi trong P4Submit.applyCommit (), hãy dọn dẹp nếu "p4 submit" không thành công.
- Có tệp còn sót lại .idx mà không có tệp .pack chứa tương ứng trong kho chứa lỗi sẽ làm hỏng; "git gc" học cách tỉa chúng.
- Mã để chuẩn bị cho phần cây làm việc của thư mục tạm thời cho tính năng "dir-diff" đã quên rằng các liên kết biểu tượng không cần phải được sao chép (hoặc liên kết đến) vào vùng tạm thời, vì các mã đã được các trường hợp đặc biệt và ghi đè lên họ. Bên cạnh đó, cố gắng tính toán tên đối tượng của mục tiêu liên kết tượng trưng, thậm chí không có hoặc có thể là một thư mục.
- Không có cách nào để đánh bại một biến rebase.autostash được định cấu hình từ dòng lệnh, vì "thiếu git rebase --no-autostash" đã bị thiếu.
- Cho phép "git interpretation-trailers" chạy bên ngoài kho Git.
- Sản xuất chính xác "bẩn" đánh dấu cho nhắc nhở của trình bao, ngay cả khi chúng tôi ở trong một mồ côi hoặc một chi nhánh chưa sinh.
- Một số trường hợp góc đã được cố định trong chuỗi kết hợp được thực hiện trong "trạng thái git".
- Việc triển khai crypto thông thường của Apple về SHA1_Update () không tốn nhiều hơn 4GB mỗi lần, và bây giờ chúng ta có một cách giải quyết vấn đề biên dịch cho nó.
- Tính năng bộ nhớ cache không theo dõi thử nghiệm bị lỗi khi đường dẫn với một vài cấp thư mục con có liên quan.
- Các phiên bản gần đây của "git am" đã mô tả có một hồi quy về hiệu suất trong "git am --skip" codepath, không còn tồn tại trong phiên bản được xây dựng sẵn trên mặt trước của chủ nhân. Sửa lại hồi quy trong phiên bản kịch bản cuối cùng xuất hiện trong quá trình bảo trì 2.5.x và cũ hơn.
- "git fetch --depth =" và "git clone --depth =" đã phát hành yêu cầu chuyển tiền nông tới cả gói tải lên không hỗ trợ khả năng.
- "git fsck" được sử dụng để bỏ qua các đối tượng thiếu hoặc không hợp lệ được ghi lại trong reflog.
- Hoàn thành tcsh đã viết một scriptlet bash nhưng điều này sẽ không thành công với người dùng với tập noclobber.
- Các bản cập nhật gần đây của Hệ điều hành Mac OS X sẽ làm hỏng logic để phát hiện ra máy tính đang chạy trên nguồn AC trong tập lệnh trước khi tự động gc.
- "git-format-patch -ignore-if-upstream A..B" không thích được nạp thẻ như là ranh giới cam kết.
- Cũng chứa các lỗi chính tả, cập nhật tài liệu và mã tầm thường
- vệ sinh.
- "git rev-list --objects $ old --not --all" để xem tất cả mọi thứ có thể truy cập từ $ old đã được kết nối với các refs hiện tại là không hiệu quả.
- "hash-object --literally" được giới thiệu trong v2.2 không được chuẩn bị để có tên kiểu đối tượng thực sự dài.
- "git rebase --quiet" không hoàn toàn yên tĩnh khi không có gì để làm.
- Hoàn thành cho giá trị tham số "log --decorate =" không chính xác.
- "fil-branch" thông báo đăng nhập cam kết bị hỏng kết thúc bằng một dòng không đầy đủ trên các nền tảng với một số triển khai "sed" mà thực hiện một đường như vậy. Làm việc xung quanh bằng cách tránh sử dụng "sed".
- "git daemon" không thể xây dựng từ nguồn theo cấu hình NO_IPV6 (hồi quy trong 2,4).
- "git stash pop / apply" quên đảm bảo rằng không chỉ cây làm việc là sạch sẽ mà còn là chỉ số được sạch sẽ. Thứ hai là quan trọng vì ứng dụng stash có thể xung đột và chỉ mục sẽ được sử dụng để giải quyết xung đột.
- Chúng tôi đã thêm tiền $ GIT_EXEC_PATH và đường dẫn "git" được cài đặt trong (thường là "/ usr / bin") đến $ PATH khi gọi các chương trình con và móc cho gần như vĩnh cửu, nhưng trường hợp sử dụng ban đầu sau này cố gắng hỗ trợ là bán -bogus (tức là cài đặt git vào / opt / foo / git và chạy nó mà không có / opt / foo trên $ PATH), và điều quan trọng hơn nó đã trở nên ít liên quan hơn khi Git phát triển chính hơn (tức là người dùng sẽ _want_ nó trên $ PATH của họ). Dừng prepending đường dẫn mà trong đó "git" được cài đặt cho $ PATH của người dùng, vì nó sẽ cản trở lệnh tìm kiếm của người dùng dựa vào (ví dụ họ không thích phiên bản của các chương trình không liên quan đến Git trong / usr / bin và muốn ghi đè chúng bằng cách đặt các thư mục khác trong / usr / local / bin và có thư mục thứ hai trong $ PATH của chúng).
- Cũng chứa các lỗi chính tả, cập nhật tài liệu và gỡ rối mã nhỏ.
Tính năng mới trong phiên bản 2.15.1:
Tính năng mới trong phiên bản 2.15.0:
Có gì mới trong phiên bản 2.14.1: ssh: //..." URL từ Git v2.7.6
Tính năng mới trong phiên bản 2.9.3:
Tính năng mới trong phiên bản 2.9.1:
Tính năng mới trong phiên bản 2.9.0:
Tính năng mới trong GIT 2.8.1 (ngày 5 tháng 4 năm 2016)
Tính năng mới trong phiên bản 2.8.1:
Tính năng mới trong phiên bản 2.7.3:
Tính năng mới trong phiên bản 2.7.2:
Tính năng mới trong phiên bản 2.6.4:
Tính năng mới trong phiên bản 2.5.3:
Tính năng mới trong phiên bản 2.4.6:
Tính năng mới trong phiên bản 2.4.2:
Bình luận không