Tiện ích mở rộng TortoiseGit và Git


77

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ì?


6
TortoiseGit là một lựa chọn tốt nếu bạn đã quen với ví dụ như TortoiseSVN. Đó là một phần mở rộng của trình bao - vì vậy bạn cần phải làm việc từ Windows Explorer. GitExtensions là một ứng dụng Windows toàn diện mà bạn có thể khởi chạy riêng biệt với Windows Explorer; nhưng đôi khi nó cảm thấy hơi "kỳ quặc" đối với tôi, không thực sự hoàn toàn theo cách tôi mong đợi một tiện ích Windows hoạt động - và nó bị treo và đóng băng rất nhiều (ít nhất là đối với tôi).
marc_s

Câu trả lời:


99

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:

  • Tích hợp tuyệt vời với Windows (đó là một phần mở rộng của trình bao)
  • Gần giống giao diện người dùng với TortoiseSVN (nếu bạn đã sử dụng TortoiseSVN, bạn biết những gì sẽ xảy ra).

Nhược điểm:

  • Bạn sẽ khó hiểu cách sử dụng git.

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.


1
Là một người theo cách khác, từ việc sử dụng Tiện ích mở rộng Git đến việc phải sử dụng TortoiseSVN cho một dự án khác, tôi thấy việc sử dụng TortoiseSVN rất khó chịu. Có xu hướng làm hỏng kho lưu trữ SVN, mặc dù cuối cùng tôi đã quen với nó. Từ kinh nghiệm của tôi và nhận xét của Rafael, tôi nghĩ chắc chắn có sự không phù hợp về trở kháng giữa cách hoạt động của Rùa và git.
Simon Tewsi

4
Cá nhân tôi sử dụng TortoiseGit cho commiting (để xem xét cam kết) và xem log duy nhất, cho các hoạt động khác sử dụng dòng lệnh

2
TortoiseGit không khó học, nó chỉ hoạt động giống như TortoiseSVN. nhân tiện, tôi sử dụng cả TortoiseGit và gitextension.
Cheung

2
@ user133408: bạn có thể chỉ cần sử dụng "gitk" và "git-gui" từ git bash cho điều đó. không sử dụng cho phần mềm cồng kềnh gây tắc nghẽn toàn bộ máy và làm chậm trình khám phá tệp và gây khóa tệp.
v.oddou

Vui lòng cập nhật câu trả lời bằng: "msysGit đã được Git thay thế cho Windows 2.x"
Danijel

26

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.


Là một bản cập nhật, mặc dù các thông báo lỗi vẫn có thể hơi khó hiểu nhưng chúng thực sự đang hiển thị đúng cách.
Teo Klestrup Röijezon

6
Git Extensions hỗ trợ hiển thị tiến trình trong quá trình kéo cách đây khá lâu. Quá trình gián đoạn Git cũng được khắc phục.
KindDragon

1
Đối với thông tin chung, nếu KindDragon sử dụng cùng một tên người dùng trên nhiều trang web thì anh ta là một trong những nhà phát triển Tiện ích mở rộng Git nên thông tin của anh ta có thể là chính xác.
Simon Tewsi

Tôi đã sử dụng TortoiseGit bắt đầu từ năm 2016 và nó luôn luôn dễ dàng với tôi kể từ đó.
Marc.2377

19

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 đó.

Chế độ xem nhật ký Tiện ích mở rộng Git


6
Đây là một cân nhắc rất quan trọng. Do di sản CVS / SVN của nó, TortoiseGit là hướng tệp và thư mục. Nhưng bản thân git thì không - nó hướng tới lịch sử, và các tệp và thư mục chỉ xảy ra là những gì lịch sử liên quan. Trên thực tế, bất kỳ công cụ Git nào có phương tiện truy cập chính là thông qua menu ngữ cảnh tệp / thư mục đều bị sai sót. Điều này bao gồm cả Tiện ích mở rộng Git.
Jeremy

13

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:

  • hiển thị đồ họa giống gitk trực quan của các dòng mã và các nhánh, với tất cả thông tin cần thiết có sẵn trong các tab, loại bỏ mọi nhu cầu làm việc với SHA không thân thiện.
  • khả năng cài đặt với tư cách Quản trị viên và tất cả người dùng khác trên cùng một PC có thể sử dụng nó giống như bất kỳ người dùng thông thường nào.
  • tích hợp shell tích hợp với Windows Explorer
  • tích hợp ra khỏi hộp với Visual Studio (người dùng Windows Eclipse chỉ cần msysgit, vì họ có GUI riêng để thay thế nhu cầu về GitExtensions)
  • trình cài đặt dễ sử dụng được đóng gói sẵn với tất cả các chức năng cần thiết và điều kiện tiên quyết để bắt đầu ngay từ đầu (SSH Client, KDiff, msysgit).
  • tích hợp với GitHub (Fork, clone, pull đều được sắp xếp hợp lý)

Nhược điểm:

  • tài liệu không theo kịp với các tính năng mới liên tục được thêm vào. Ví dụ, tôi vẫn chưa biết cách sử dụng các tính năng của script.

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.


12

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ỉ muốn nhận xét rằng tôi đã có kinh nghiệm tương tự. Sử dụng TGit ngoại trừ trường hợp dễ sử dụng bash cho các hoạt động ít điển hình hơn. TGit có nhật ký tuyệt vời, khác biệt tích hợp tuyệt vời, và bây giờ là năm 2016 là vững chắc.
Raj

10

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.


1
Cũng ủng hộ TortoiseGit : 1) Nó nhanh hơn nhiều trên các PC cũ hơn mà không có độ trễ tải vài giây như GE; 2) Nó cho phép chỉnh sửa tệp hiện tại trong trình xem khác biệt mặc định; 3) Nó có nhiều tùy chọn hơn trong menu ngữ cảnh; 5) Nó có các cột có thể định cấu hình trong trình xem cam kết; 5) Nó có thể autocrlfthiế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);
Annarfych

Chỉ cần sử dụng nó với openssh thay vì putty và được hạnh phúc
Marc.2377

7

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.


5

Để 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


1
Bạn không cần phải phiên bản chuyên nghiệp của visual studio để biên dịch GitExtensions, nhưng bạn cần cho TortoiseGit
linquize

1
Cần có phiên bản chuyên nghiệp nếu bạn muốn xây dựng phần mở rộng shell của GitExtensions. Các phần cốt lõi biên dịch với Express Edition,
linquize

TortoiseGit cuộc gọi đến libgit2 và do đó nó NHIÊU nhanh hơn (mũ và cố ý đậm)
Marc.2377

0

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.


4
NGÀY: 2012-9-4: Một năm sau, vấn đề này có được giải quyết không? Tôi nói TortoiseGit đang được cải thiện
linquize
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.