Lợi ích và bất lợi của việc sử dụng Tiện ích mở rộng Git hoặc TortoiseGit trên Hệ điều hành dựa trên Windows là gì?
Lợi ích và bất lợi của việc sử dụng Tiện ích mở rộng Git hoặc TortoiseGit trên Hệ điều hành dựa trên Windows là gì?
Câu trả lời:
Tôi không biết GitExtensions, nhưng tôi có thể chia sẻ kinh nghiệm của mình với TortoiseGit (được ám chỉ bởi nhận xét của marc_s):
Ưu điểm:
Nhược điểm:
Vấn đề với TortoiseGit là những người đã làm việc với TortoiseSVN sẽ nghĩ rằng mọi thứ sẽ (hoặc nên) hoạt động chính xác như trong SVN ... và cuối cùng không bao giờ thực sự hiểu cách làm việc với git. Theo kinh nghiệm cá nhân, công ty tôi làm việc đã chuyển từ SVN sang git sau 2 năm, và mọi nhà phát triển sử dụng TortoiseGit đều không thực sự biết họ đang làm gì và đôi khi làm hỏng kho lưu trữ cục bộ của họ. Cuối cùng, họ đã bỏ TortoiseGit và dành thời gian học git "một cách khó khăn" (shell, msysGit trên Windows) và mọi người đã hạnh phúc kể từ đó.
Kết luận: Chỉ cần sử dụng msysGit trực tiếp và học git đúng cách. Bạn sẽ tránh được nhiều chuyện đau đầu trong thời gian tới.
Công ty của tôi đã thử cả hai và nhanh chóng loại bỏ Tortoise Git. Nó bị rơi thường xuyên hơn nhiều. Các lập trình viên cho rằng Tortoise Git không đủ khả năng nhưng tôi đã không tự mình kiểm tra điều đó. Nhưng tôi đã chứng kiến rất nhiều sự cố.
Những người lập trình thích git bash, những người khác sử dụng nhưng ghét Phần mở rộng git. Mặc dù ngay cả một số trong số họ cũng mở ra git bash. Git bash là không thể tránh khỏi để xem các bộ đếm tiến trình.
Phần mở rộng Git không có tùy chọn để hiển thị bộ đếm tiến trình trong quá trình kéo. Vì vậy, chỉ với Phần mở rộng Git, bạn ngồi trước một thanh tiến trình bí ẩn, không biết điều gì xảy ra và liệu có điều gì không thành công hay không. Điều tồi tệ nhất là mật khẩu bị thiếu hoặc không chính xác: Tiện ích mở rộng Git chỉ cho phép bạn chờ đợi mãi mãi, hiển thị cùng một thanh phát sáng như thể nó đang làm điều gì đó tốn thời gian. Một điều kinh dị khác của Tiện ích mở rộng Git là việc thường xuyên bị "hết bộ nhớ", khi lập phiên bản cho nhiều tệp lớn và kéo bằng rebase. Sau khi hủy bỏ như vậy, người dùng không sử dụng mã hóa luôn ngập trong các vấn đề. Nhiều tệp mà họ không thay đổi hiển thị là đã thay đổi và tệp khóa ngăn họ xử lý sự cố, v.v.
Theo tôi, cả hai công cụ GUI đều chưa trưởng thành.
Bạn muốn Phần mở rộng Git vì một lý do quan trọng - nó hiển thị cho bạn chế độ xem đồ họa của nhật ký cam kết (xem bên dưới). Nếu không có chế độ xem đồ họa đó, tôi không nghĩ rằng hầu hết những người mới làm quen với git sẽ không bao giờ hiểu được những gì đang diễn ra với các nhánh, cam kết, phục hồi, hái anh đào, v.v.
Bạn cũng sẽ muốn thực hiện một số công việc của mình trên dòng lệnh, tốt nhất bạn nên sử dụng git thực tế vì tất cả sự trợ giúp bạn nhận được sẽ dựa trên dòng lệnh.
Tất cả những gì đã nói, bạn cũng có thể sử dụng Tortoise Git (giả sử nó hoạt động) vì tất cả chúng đều gọi các tệp thực thi dòng lệnh giống nhau và hoạt động trên cùng một kho lưu trữ git.
Hầu hết các IDE cũng có hỗ trợ git, JetBrains IDEA thực hiện rất tốt việc thêm danh sách thay đổi và các chức năng khác trên đó.
Tôi không có nhiều kinh nghiệm với TortoiseGit, nhưng tôi đã cài đặt và hiện đang sử dụng GitExtensions v2.21.
Những lợi thế lớn nhất khi sử dụng GitExtensions:
Nhược điểm:
Chúng ta đừng quên rằng đó là một chương trình hoàn toàn miễn phí và được cung cấp cho chúng ta như một tùy chọn không có ràng buộc nào, tôi không thấy lý do cho những kỳ vọng cao như vậy được đặt vào nó, như thể chúng ta là khách hàng trả phí? Tôi đã thấy một số lần hủy và đóng băng mà người dùng trước đó đã đề cập, nhưng tôi tin rằng phần lớn trong số đó đã được khắc phục trong v2.24. Rất nhiều lần hủy bỏ và hành động không thành công thực sự không phải là lỗi của GitExtensions, mà là một triệu chứng của sự cố hệ thống bên ngoài GitExtensions (ví dụ: thiết lập SSH bị định cấu hình sai, các vấn đề về quyền tệp trên máy chủ lưu trữ repo từ xa, v.v.). Ví dụ, có một lần tôi thực hiện một động tác đẩy đơn giản nhưng không thành công và bỏ dở. Hóa ra là điều khiển từ xa tôi đang cố gắng đẩy đến có tên đường dẫn rất dài, điều này gây ra sự cố cho máy chủ Mac lưu trữ kho lưu trữ.
Dù sao, điều đó đã nói, tuy nhiên, trải nghiệm của tôi với GitExtensions khá tích cực. Tôi thấy những lợi ích được nêu ở trên rất đáng giá để áp dụng với việc thỉnh thoảng hủy bỏ và đóng băng cho đến khi các lỗi được sửa.
Tôi không thể nói chuyện với Tiện ích mở rộng Git vì tôi chưa bao giờ sử dụng nó. Gặp một số vấn đề với GIT thuần túy. Chẳng hạn, không thể tích hợp GVIM. Tortoise Git có một công cụ chỉnh sửa và khác biệt tích hợp (thật tuyệt vời), vì vậy đó là một sự tiện lợi rất tốt. Tôi yêu thích các sơ đồ nhánh trong cuốn sách của Scott Chacon và hy vọng TGit sẽ có một sơ đồ tương tự. Họ có một công cụ để hiển thị các nhánh nhưng nó không đẹp như trong sách.
Một điều cần lưu ý là vì TGit chỉ là một shell trên GIT, không có hại gì khi trộn hai phương pháp. Tôi sử dụng TGit cho hầu hết mọi thứ, nhưng nhúng vào GIT cho các lệnh khó hiểu hoặc đơn giản là tôi không hiểu rõ về TGit. Nhưng ngay cả khi bạn định sử dụng TGit, điều quan trọng là, như đã đề cập ở trên, trước tiên phải hiểu những điều cơ bản về GIT. Tôi đã đọc qua ba chương đầu tiên trong cuốn sách Chacon (có sẵn trực tuyến miễn phí tại http://progit.org/book/ hoặc mua tại Amazon). Nếu bạn giống tôi, bạn có thể muốn đọc đi đọc lại chúng vài lần để mô hình chìm sâu vào trong. Tất cả không quá phức tạp, nhưng nó rất khác so với các VCS trước.
TGit không bao giờ bị lỗi đối với tôi, như nó đã xảy ra với một số người đánh giá khác, nhưng sau đó repo của tôi đã nhỏ. Nó đã ăn các nhận xét cam kết của tôi nhiều lần, có thể là do lỗi của người dùng. Vì bạn có thể quay lại và chỉnh sửa lại các nhận xét nên đây chỉ là một điều khó chịu và đáng để bạn tiện lợi khi có GUI, với các cửa sổ hiển thị rất nhiều thông tin trong nháy mắt.
Chỉ để phản bác một số nhận xét ở trên:
Với mong đợi chính xác, TortoiseGit cung cấp một gui tuyệt vời để làm việc với git trên Windows. Nó không phải là sự thay thế cho TortoiseSvn, mà là một gui cải tiến về những gì người ta có thể đạt được bằng cách sử dụng gitk + git-gui (có thể được coi là một phần của chức năng git cốt lõi và có thể truy cập được trong msysgit). Điều tồi tệ duy nhất tôi thấy là bạn sẽ không cần phải nhớ tất cả các lệnh chính xác cho checkout / rebase / merge, v.v., vì có thể thực hiện tất cả điều đó rất thuận tiện thông qua gui (đó là toàn bộ điểm). Vấn đề putty / ssh liên quan nhiều hơn đến sự hỗ trợ kém hơn cho ssh trên Windows và không phải là duy nhất đối với TortoiseGit.
autocrlf
thiết lập trong GUI (tức là không cảnh báo lại về việc dàn dựng như GE);
Tôi sử dụng GitExtensions. Tôi chưa sử dụng TortoiseGit nhưng một trong những nhà phát triển khác của chúng tôi yêu thích nó và từ chối sử dụng GitExtensions. Lý do của anh ấy là 1) Nó quen thuộc; 2) Nó có tích hợp Windows Explorer tuyệt vời.
Sử dụng GitExtensions, tôi có xu hướng chỉ sử dụng tích hợp Windows Explorer cho ba việc:
1) Để tạo một kho lưu trữ cục bộ mới (mục menu ngữ cảnh Git Init Đây, thực ra là lệnh Git cho Windows; GitExtensions nằm trên Git cho Windows);
2) Để mở Git Extensions GUI (cửa sổ duyệt);
3) Để sao chép một kho lưu trữ từ xa xuống một kho lưu trữ cục bộ (mục menu ngữ cảnh Git Extensions> Clone).
Đối với hầu hết mọi thứ khác, tôi chỉ có GUI GitExtensions và hoạt động từ đó.
Các nhà phát triển của GitExtensions tuyên bố rằng hầu hết mọi lệnh đều có thể được thực thi từ GUI. Điều này không hoàn toàn đúng nhưng tôi thấy mình chỉ cần vào giao diện dòng lệnh khoảng một hoặc hai lần một tháng cho các tác vụ phức tạp.
Trong một số trường hợp, GUI làm cho các tác vụ phức tạp trở nên đơn giản bằng cách ẩn đi sự phức tạp của các lệnh Git bên dưới. Điều này đôi khi liên quan đến việc kết hợp một số lệnh Git thành một hành động duy nhất. ví dụ: Tạo các mô-đun con trong đó GUI kết hợp thêm một mô-đun con, khởi tạo nó và cập nhật nó thành một hành động duy nhất. Trong một trường hợp khác, GUI đơn giản hóa một tác vụ bằng cách cung cấp một lệnh mà Git thiếu - loại bỏ một mô-đun con (trong Git, bạn phải chỉnh sửa thủ công các tệp khác nhau như .gitmodules và .git / config để xóa một mô-đun con). Tôi muốn biết liệu TortoiseGit có đơn giản hóa các tác vụ phức tạp theo cách tương tự hay không.
GitExtensions cũng có tích hợp Visual Studio khá cơ bản. Không biết nếu TortoiseGit có. Có một nhà cung cấp điều khiển nguồn Git riêng cho Visual Studio 2008 và 2010 cung cấp tích hợp Visual Studio rộng rãi hơn nhiều. Tuy nhiên, sau khi cài đặt Nhà cung cấp Kiểm soát Nguồn Git, tôi thấy mình chưa bao giờ sử dụng nó. Tích hợp GitExtensions duy nhất mà tôi sử dụng từ Visual Studio là trên thanh công cụ, để mở GitExtensions GUI với kho lưu trữ thích hợp. Tôi sẽ làm việc với Visual Studio trên một màn hình và GitExtensions mở trên màn hình kia.
Từ ít nhất phiên bản 2.32 GitExtensions hiển thị số lượng tệp không được cam kết trong thanh công cụ của nó. Trước đây tôi đã sử dụng 2.24 không có tính năng này và nó rất tiện dụng. Cung cấp phản hồi tức thì về việc có bất kỳ thay đổi nào chưa được cam kết hay không.
Để biên dịch, tùy chỉnh và xây dựng tiện ích mở rộng nhanh chóng và dễ dàng, GitExtensions tốt hơn (C #) so với TortoiseGit (Visual C ++ MFC)
Đối với tính di động, GitExtensions tốt hơn (.NET trên Windows / mono trên Linux / Mac) hơn TortoiseGit (chỉ Win32 / 64)
Để sử dụng lớp phủ biểu tượng trong Explorer, hãy sử dụng TortoiseGit
Để thực hiện một số tính năng, TortoiseGit tốt hơn vì nó gọi thư viện tĩnh / động để lấy kết quả từ kho lưu trữ, trong khi GitExtensions chỉ gọi dòng lệnh git.exe có chi phí lớn hơn.
Để di chuyển từ TortoiseSVN, TortoiseGit sẽ quen thuộc hơn GitExtensions
NGÀY: 2011-08-27.
Tại thời điểm này, Tortoise Git KHÔNG HOẠT ĐỘNG gì cả và vấn đề trên trang web mã google đã không nhận được sự quan tâm trong một tháng: http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1 .
Hộp 'Load Putty Key' từ cửa sổ bật lên trong lần sử dụng đầu tiên của Tortoise Git để sao chép một trang web (và bắt đầu phát triển) bị chuyển sang màu xám. Vì vậy, không tìm thấy khóa riêng tư nào và thông báo lỗi là 'kết nối bị rớt' THÀNH CÔNG !!!!
Git Bash hoạt động hoàn hảo, mặc dù dựa trên bảng điều khiển. Và nếu mọi người ở trên nói về việc không hiểu khái niệm Git khi sử dụng Tortoise Git, tôi sẽ tránh xa nó dựa trên điều đó, thậm chí không tính đến 3 giờ cuối cùng tôi đã cố gắng để Tortoise Git làm việc cho một nhà phát triển. Anh ta sẽ phải học giao diện điều khiển Git, hoặc đi xuống đường.
Tôi đã làm cho nó hoạt động trong 15 phút và tôi chỉ là một hacker đang cố gắng thuê lập trình viên ;-)
PS, Eclipse có sẵn cả ba 'trình kết nối' của kho lưu trữ Kiểm soát Phiên bản chính và là một trình soạn thảo rất tốt.