TortoiseGit проти розширень Git


77

Які переваги та недоліки використання Git Extensions або TortoiseGit в ОС на базі Windows?


6
TortoiseGit - хороший вибір, якщо ви вже звикли, наприклад, до TortoiseSVN. Це розширення оболонки - тому вам потрібно працювати з Провідника Windows. GitExtensions - це повнофункціональна програма для Windows, яку ви можете запустити окремо від Провідника Windows; але мені часом це здається трохи дивним, не зовсім так, як я очікую, що утиліта Windows працюватиме - і вона дуже сильно розбивається і зависає (принаймні для мене).
marc_s

Відповіді:


99

Я не знаю GitExtensions, але можу поділитися своїм досвідом із TortoiseGit (на що посилається коментар marc_s):

Плюси:

  • Відмінна інтеграція з Windows (це розширення оболонки)
  • Майже той самий інтерфейс, що і TortoiseSVN (якщо ви вже використовували TortoiseSVN, ви знаєте, на що чекати).

Мінуси:

  • Вам важко буде зрозуміти, як користуватися git.

Проблема TortoiseGit полягає в тому, що люди, які працювали з TortoiseSVN, будуть думати, що все буде (або повинно) працювати точно так, як у SVN ... і в кінцевому підсумку ніколи не розуміють, як працювати з git. Як особистий досвід, компанія, в якій я працюю, перейшла зі SVN на git через 2 роки, і кожен розробник, який використовував TortoiseGit, в кінцевому підсумку не знав, що вони роблять, а іноді і псував свої локальні сховища. Врешті-решт, вони скинули TortoiseGit і витрачають час на вивчення git "на жорсткий шлях" (оболонка, msysGit у Windows), і з того часу всі були щасливі.

Висновок: Просто використовуйте msysGit безпосередньо і правильно вивчіть git. У майбутньому ви уникнете багатьох головних болів.


1
Як хтось, хто пішов іншим шляхом, від використання Git Extensions до необхідності використовувати TortoiseSVN для іншого проекту, я знайшов використання TortoiseSVN дуже дратуючим. Як правило, псує сховище SVN, хоча я врешті звик. З мого досвіду та коментарів Рафаеля, я думаю, що, безумовно, існує невідповідність імпедансу між тим, як Черепаха робить щось, і git.
Саймон Тевсі

4
Особисто я використовую TortoiseGit для комітування (для перегляду коміту) та лише перегляду журналу, для інших операцій використовую командний рядок

2
TortoiseGit не важко навчається, він просто працює як TortoiseSVN. до речі, я використовую TortoiseGit та gitextension.
Cheung

2
@ user133408: для цього ви можете просто використовувати "gitk" та "git-gui" з git bash. не застосовується роздуте програмне забезпечення, яке збиває всю машину, уповільнює провідник файлів та спричиняє блокування файлів.
v.oddou

Будь ласка, оновіть відповідь: "msysGit замінено Git для Windows 2.x"
Даніель

26

Моя компанія спробувала обидва і швидко скинула Tortoise Git. Він розбивався набагато частіше. Кодери стверджують, що Tortoise Git недостатньо здатний, але я сам цього не перевіряв. Але я сам бачив багато аварій.

Кодери віддають перевагу git bash, інші використовують, але ненавидять git Extensions. Хоча навіть деякі з них додатково відкривають git bash. Git bash не уникнути, щоб побачити лічильники прогресу.

Git Extensions не має можливості показувати лічильники прогресу під час витягування. Тож лише з Git Extensions ви сидите перед загадковою панеллю, що не виконує прогрес, не знаючи, що відбувається і чи щось не вдалося. Найгірше - відсутність або неправильність пароля: Git Extensions просто дозволяє чекати вічно, показуючи ту саму світиться смужку, наче це робило щось трудомістке. Ще одним жахом Git Extensions є часте переривання з "нестачею пам'яті", коли версії багатьох великих файлів і перетягування з rebase. Після такого переривання користувачі, що не кодують, завжди переповнені проблемами. Багато файлів, які вони не змінили, відображаються як змінені, і файл блокування заважає їм мати справу з проблемою тощо.

На мій погляд, обидва інструменти графічного інтерфейсу незрілі.


В якості оновлення, хоча повідомлення про помилки все ще можуть трохи заплутати, вони насправді відображаються належним чином зараз.
Teo Klestrup Röijezon

6
Git Extensions підтримує відображення прогресу під час витягування давно. Також виправлено переривання процесу Git.
KindDragon

1
Для загальної інформації, якщо KindDragon використовує одне і те ж ім'я користувача на кількох сайтах, він є одним із розробників Git Extensions, тому його інформація, швидше за все, буде правильною.
Саймон Теусі

Я використовував TortoiseGit, починаючи з 2016 року, і з тих пір для мене завжди було вітряком.
Marc.2377

19

Вам потрібні розширення Git з однієї важливої ​​причини - вона показує вам графічний вигляд журналу комітів (див. Нижче). Без цього графічного подання я не думаю, що більшість людей, які новачки в git, ніколи не отримають того, що відбувається з гілками, комітами, перебазуванням, збиранням вишні тощо (я знаю, що ні).

Ви також захочете виконати деякі роботи в командному рядку, найкраще використовувати практично git, оскільки вся ваша допомога буде заснована на командному рядку.

З усього сказаного, ви також можете використовувати Tortoise Git (якщо це працює), оскільки всі вони викликають однакові виконувані файли командного рядка і діють в одному сховищі git.

Більшість IDE також мають підтримку git, JetBrains IDEA чудово справляється із додаванням списків змін та інших функціональних можливостей.

Перегляд журналу розширень Git


6
Це дуже важлива думка. Завдяки спадщині CVS / SVN TortoiseGit орієнтований на файли та каталоги. Але сам git це не так - він орієнтований на історію, і файли та каталоги просто є тим, чим займається ця історія. Насправді, будь-який інструмент Git, основним засобом доступу якого є контекстне меню файл / каталог, є недосконалим. Сюди входять також розширення Git.
Джеремі

13

У мене немає великого досвіду роботи з TortoiseGit, але я встановив і зараз використовую GitExtensions v2.21.

Найбільші переваги використання GitExtensions:

  • візуальне графічне відображення кодових ліній та гілок, подібне до gitk, з усією важливою інформацією, доступною на вкладках, усуваючи необхідність працювати з недружніми SHA.
  • можливість встановити як адміністратор, так і всі інші користувачі на одному ПК можуть використовувати його, як і будь-який звичайний користувач.
  • вбудована інтеграція оболонки з Провідником Windows
  • нестандартна інтеграція з Visual Studio (користувачам Windows Eclipse потрібен лише msysgit, оскільки вони мають власний графічний інтерфейс, щоб замінити потребу в GitExtensions)
  • простий у використанні інсталятор, який постачається з попередньою упаковкою з усіма необхідними та необхідними функціональними можливостями, щоб розпочати роботу (SSH Client, KDiff, msysgit)
  • інтеграція з GitHub (Fork, clone, pull є впорядкованими)

Недоліки:

  • документація не встигає за новими функціями, які постійно додаються. Наприклад, я досі не знаю, як користуватися сценарієм.

Щоб ми не забули, що це абсолютно безкоштовна програма, і запропонована нам як опція без жодних рядків, я не бачу обґрунтування таких високих сподівань, покладених на неї, як ніби ми платні клієнти? Я бачив деякі переривання та заморожування, про які згадав попередній користувач, але я вважаю, що більшість із них було виправлено у v2.24. Багато переривань та невдалих дій насправді є не виною GitExtensions, а більше симптомом системної проблеми поза GitExtensions (наприклад, неправильно налаштоване налаштування SSH, проблеми з дозволами файлів на сервері, що розміщує віддалене репозиторій тощо). Наприклад, колись я робив простий поштовх, який спричиняв невдачу та переривання. Виявляється, пульт дистанційного керування, на який я намагався натиснути, мав дуже довгу назву шляху, що створювало проблеми для сервера Mac, на якому розміщувалось репо.

У будь-якому випадку, однак, мій досвід роботи з GitExtensions був досить позитивним. Я вважаю, що викладені вище переваги змусили дотримуватися випадкових переривань і заморозок, поки помилки не будуть виправлені.


12

Я не можу розмовляти з Git Extensions, оскільки ніколи ним не користувався. Були проблеми з чистим ЖКТ. Наприклад, не вдалося інтегрувати GVIM. Tortoise Git має вбудований редактор та інструмент diff (що дивно), тому це дуже приємна зручність. Мені сподобалися діаграми галузей у книзі Скотта Чакона і сподівався, що у TGit буде така ж діаграма. У них є інструмент для показу гілок, але він не такий приємний, як у книзі.

Майте на увазі одне: оскільки TGit - це просто оболонка поверх GIT, змішання двох методів не завдає шкоди. Я використовую TGit майже для всього, але занурююся в GIT для команд, які незручні або які я просто погано розумію в TGit. Але навіть якщо ви плануєте використовувати TGit, все одно важливо, як уже згадувалося вище, спочатку зрозуміти основи GIT. Я прочитав перші, скажімо, три розділи книги Chacon (доступні безкоштовно в Інтернеті за адресою http://progit.org/book/ або можна придбати на Amazon). Якщо ви схожі на мене, можливо, ви захочете прочитати їх кілька разів, щоб парадигма занурилася. Це не все так складно, але воно сильно відрізняється від попередніх СКУ.

TGit ніколи не падав на мене, як це було для деяких інших рецензентів, але тоді мої репо були невеликі. Це з’їло мої коментарі до комітів не раз, і це могло бути помилкою користувача. Оскільки ви можете повернутися назад і повторно відредагувати коментарі, це було просто роздратуванням і варто зручності користування графічним інтерфейсом, з вікнами, які відображають велику кількість інформації відразу.


Просто хочу прокоментувати, що я мав такий самий досвід. Використовуйте TGit, за винятком випадків, коли простіше використовувати bash для менш типових операцій. TGit має чудовий журнал, чудову вбудовану різницю, і тепер у 2016 році це твердо.
Радж

10

Просто для того, щоб протистояти деяким вищезазначеним зауваженням:

З правильним очікуванням TortoiseGit пропонує чудовий інтерфейс для роботи з git в Windows. Це не заміна TortoiseSvn, а вдосконалений графічний інтерфейс щодо того, чого можна досягти за допомогою gitk + git-gui (який можна вважати частиною основної функціональності git і доступним у msysgit). Єдине погане, що я бачу, це те, як вам не потрібно було б запам'ятовувати всі точні команди для checkout / rebase / merge тощо, оскільки це все можна зробити дуже зручно за допомогою графічного інтерфейсу (у чому вся суть). Проблеми шпаклівки / ssh мають більше спільного із слабкою підтримкою ssh у Windows, і вони не є унікальними для TortoiseGit.


1
Також на користь TortoiseGit : 1) Це набагато швидше на старих ПК без кількох секундних затримок навантаження, як GE; 2) Це дозволяє редагувати поточний файл у переглядачі за замовчуванням; 3) у контекстному меню є набагато більше можливостей; 5) Він має настроювані стовпці у засобі перегляду комітів; 5) Це autocrlfзаважає налаштуванню в графічному інтерфейсі (тобто не попереджає про постановку, як GE);
Annarfych

Просто використовуйте його з openssh замість шпаклівки і будьте щасливі
Marc.2377

7

Я використовую GitExtensions. Я не використовував TortoiseGit, але один з наших інших розробників любить його і відмовляється використовувати GitExtensions. Його міркування: 1) Це знайоме; 2) Він має чудову інтеграцію Провідника Windows.

Використовуючи GitExtensions, я, як правило, використовую інтеграцію Провідника Windows лише для трьох речей:

1) Створити нове локальне сховище (пункт контекстного меню Git Init Here, що насправді є командою Git для Windows; GitExtensions знаходиться поверх Git для Windows);

2) Відкрити графічний інтерфейс Git Extensions (вікно перегляду);

3) Клонувати віддалене сховище до локального сховища (пункт контекстного меню Git Extensions> Clone).

Практично для всього іншого я просто маю графічний інтерфейс GitExtensions і працюю звідти.

Розробники GitExtensions стверджують, що майже будь-яку команду можна виконати з графічного інтерфейсу. Це не зовсім так, але я вважаю, що мені потрібно лише заходити в інтерфейс командного рядка приблизно раз або два на місяць для складних завдань.

У деяких випадках графічний інтерфейс робить складні завдання простими, приховуючи складність основних команд Git. Це іноді передбачає поєднання декількох команд Git в одну дію. наприклад, створення підмодулів, де графічний інтерфейс поєднує додавання підмодуля, його ініціалізацію та оновлення до однієї дії. В іншому випадку графічний інтерфейс спрощує завдання, надаючи команду, якої не вистачає Git - видалення підмодуля (у Git вам потрібно вручну редагувати різні файли, такі як .gitmodules та .git / config, щоб видалити підмодуль). Мені було б цікаво дізнатись, чи TortoiseGit спрощує складні завдання подібним чином.

GitExtensions також має досить базову інтеграцію Visual Studio. Не знаю, чи TortoiseGit це робить. Для Visual Studio 2008 та 2010 існує окремий постачальник контролю над джерелом Git, який забезпечує набагато ширшу інтеграцію Visual Studio. Однак, встановивши Git Source Provider Control, я виявляю, що ніколи не використовую його. Єдиною інтеграцією GitExtensions, яку я використовую від Visual Studio, є панель інструментів, щоб відкрити графічний інтерфейс GitExtensions із відповідним сховищем. Я працюватиму з Visual Studio на одному моніторі, а GitExtensions відкриватимуться на іншому.

Принаймні з версії 2.32 GitExtensions показує кількість незв'язаних файлів на своїй панелі інструментів. Раніше я використовував 2.24, який не мав цієї функції, і це дуже зручно. Дає миттєвий відгук про те, чи є якісь незмінені зміни чи ні.


5

Для швидкої та простої компіляції, налаштування та побудови розширень GitExtensions краще (C #), ніж TortoiseGit (Visual C ++ MFC)

Для переносимості GitExtensions краще (.NET для Windows / mono на Linux / Mac), ніж TortoiseGit (лише Win32 / 64)

Щоб використовувати накладення піктограм у Провіднику, використовуйте TortoiseGit

Для виконання деяких функцій TortoiseGit краще, оскільки він викликає статичну / динамічну бібліотеку для отримання результату зі сховища, тоді як GitExtensions викликає лише командний рядок git.exe, який має більші накладні витрати.

Для переходу з TortoiseSVN TortoiseGit буде більш знайомий з GitExtensions


1
Вам не потрібно професійне видання візуальної студії для компіляції GitExtensions, але вам потрібен TortoiseGit
linquize

1
Професійна версія потрібна, якщо ви хочете створити розширення оболонки GitExtensions. Основні частини складаються з Express Edition,
linquize

TortoiseGit дзвонить до libgit2 і, отже, це НАБАГАТО швидше (великі
літери

0

ДАТА: 27.08.2011.

На даний момент Tortoise Git взагалі НЕ РАБОТАЄ, і проблема на сайті коду Google не отримувала уваги протягом місяця: http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1 .

Поле «Завантажити ключ-шпаклівку» зі спливаючого вікна першого використання Tortoise Git для клонування сайту (і початку його розробки) сіре. Отже, жодного закритого ключа не знайдено, а повідомлення про помилку - «з’єднання припинено» УСПІШНО !!!!

Git Bash працює ідеально, хоча і на консолі. І якщо всі вищезазначені говорять про нерозуміння концепції Git під час використання Tortoise Git, я б просто триматися подалі від цього, навіть не беручи до уваги останні 3 години, які я витратив, намагаючись змусити Tortoise Git працювати на розробника. Йому доведеться навчитися консолі Git, або піти дорогою.

Я працюю за 15 хвилин, і я просто хакер, який намагається найняти програмістів ;-)

PS, Eclipse має всі три основні сховища сховища контролю версій і є дуже хорошим редактором.


4
ДАТА: 2012-9-4: Через рік, чи вирішена ця проблема? Я кажу, що TortoiseGit покращується
linquize
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.