Які переваги та недоліки використання Git Extensions або TortoiseGit в ОС на базі Windows?
Які переваги та недоліки використання Git Extensions або TortoiseGit в ОС на базі Windows?
Відповіді:
Я не знаю GitExtensions, але можу поділитися своїм досвідом із TortoiseGit (на що посилається коментар marc_s):
Плюси:
Мінуси:
Проблема TortoiseGit полягає в тому, що люди, які працювали з TortoiseSVN, будуть думати, що все буде (або повинно) працювати точно так, як у SVN ... і в кінцевому підсумку ніколи не розуміють, як працювати з git. Як особистий досвід, компанія, в якій я працюю, перейшла зі SVN на git через 2 роки, і кожен розробник, який використовував TortoiseGit, в кінцевому підсумку не знав, що вони роблять, а іноді і псував свої локальні сховища. Врешті-решт, вони скинули TortoiseGit і витрачають час на вивчення git "на жорсткий шлях" (оболонка, msysGit у Windows), і з того часу всі були щасливі.
Висновок: Просто використовуйте msysGit безпосередньо і правильно вивчіть git. У майбутньому ви уникнете багатьох головних болів.
Моя компанія спробувала обидва і швидко скинула Tortoise Git. Він розбивався набагато частіше. Кодери стверджують, що Tortoise Git недостатньо здатний, але я сам цього не перевіряв. Але я сам бачив багато аварій.
Кодери віддають перевагу git bash, інші використовують, але ненавидять git Extensions. Хоча навіть деякі з них додатково відкривають git bash. Git bash не уникнути, щоб побачити лічильники прогресу.
Git Extensions не має можливості показувати лічильники прогресу під час витягування. Тож лише з Git Extensions ви сидите перед загадковою панеллю, що не виконує прогрес, не знаючи, що відбувається і чи щось не вдалося. Найгірше - відсутність або неправильність пароля: Git Extensions просто дозволяє чекати вічно, показуючи ту саму світиться смужку, наче це робило щось трудомістке. Ще одним жахом Git Extensions є часте переривання з "нестачею пам'яті", коли версії багатьох великих файлів і перетягування з rebase. Після такого переривання користувачі, що не кодують, завжди переповнені проблемами. Багато файлів, які вони не змінили, відображаються як змінені, і файл блокування заважає їм мати справу з проблемою тощо.
На мій погляд, обидва інструменти графічного інтерфейсу незрілі.
Вам потрібні розширення Git з однієї важливої причини - вона показує вам графічний вигляд журналу комітів (див. Нижче). Без цього графічного подання я не думаю, що більшість людей, які новачки в git, ніколи не отримають того, що відбувається з гілками, комітами, перебазуванням, збиранням вишні тощо (я знаю, що ні).
Ви також захочете виконати деякі роботи в командному рядку, найкраще використовувати практично git, оскільки вся ваша допомога буде заснована на командному рядку.
З усього сказаного, ви також можете використовувати Tortoise Git (якщо це працює), оскільки всі вони викликають однакові виконувані файли командного рядка і діють в одному сховищі git.
Більшість IDE також мають підтримку git, JetBrains IDEA чудово справляється із додаванням списків змін та інших функціональних можливостей.
У мене немає великого досвіду роботи з TortoiseGit, але я встановив і зараз використовую GitExtensions v2.21.
Найбільші переваги використання GitExtensions:
Недоліки:
Щоб ми не забули, що це абсолютно безкоштовна програма, і запропонована нам як опція без жодних рядків, я не бачу обґрунтування таких високих сподівань, покладених на неї, як ніби ми платні клієнти? Я бачив деякі переривання та заморожування, про які згадав попередній користувач, але я вважаю, що більшість із них було виправлено у v2.24. Багато переривань та невдалих дій насправді є не виною GitExtensions, а більше симптомом системної проблеми поза GitExtensions (наприклад, неправильно налаштоване налаштування SSH, проблеми з дозволами файлів на сервері, що розміщує віддалене репозиторій тощо). Наприклад, колись я робив простий поштовх, який спричиняв невдачу та переривання. Виявляється, пульт дистанційного керування, на який я намагався натиснути, мав дуже довгу назву шляху, що створювало проблеми для сервера Mac, на якому розміщувалось репо.
У будь-якому випадку, однак, мій досвід роботи з GitExtensions був досить позитивним. Я вважаю, що викладені вище переваги змусили дотримуватися випадкових переривань і заморозок, поки помилки не будуть виправлені.
Я не можу розмовляти з Git Extensions, оскільки ніколи ним не користувався. Були проблеми з чистим ЖКТ. Наприклад, не вдалося інтегрувати GVIM. Tortoise Git має вбудований редактор та інструмент diff (що дивно), тому це дуже приємна зручність. Мені сподобалися діаграми галузей у книзі Скотта Чакона і сподівався, що у TGit буде така ж діаграма. У них є інструмент для показу гілок, але він не такий приємний, як у книзі.
Майте на увазі одне: оскільки TGit - це просто оболонка поверх GIT, змішання двох методів не завдає шкоди. Я використовую TGit майже для всього, але занурююся в GIT для команд, які незручні або які я просто погано розумію в TGit. Але навіть якщо ви плануєте використовувати TGit, все одно важливо, як уже згадувалося вище, спочатку зрозуміти основи GIT. Я прочитав перші, скажімо, три розділи книги Chacon (доступні безкоштовно в Інтернеті за адресою http://progit.org/book/ або можна придбати на Amazon). Якщо ви схожі на мене, можливо, ви захочете прочитати їх кілька разів, щоб парадигма занурилася. Це не все так складно, але воно сильно відрізняється від попередніх СКУ.
TGit ніколи не падав на мене, як це було для деяких інших рецензентів, але тоді мої репо були невеликі. Це з’їло мої коментарі до комітів не раз, і це могло бути помилкою користувача. Оскільки ви можете повернутися назад і повторно відредагувати коментарі, це було просто роздратуванням і варто зручності користування графічним інтерфейсом, з вікнами, які відображають велику кількість інформації відразу.
Просто для того, щоб протистояти деяким вищезазначеним зауваженням:
З правильним очікуванням TortoiseGit пропонує чудовий інтерфейс для роботи з git в Windows. Це не заміна TortoiseSvn, а вдосконалений графічний інтерфейс щодо того, чого можна досягти за допомогою gitk + git-gui (який можна вважати частиною основної функціональності git і доступним у msysgit). Єдине погане, що я бачу, це те, як вам не потрібно було б запам'ятовувати всі точні команди для checkout / rebase / merge тощо, оскільки це все можна зробити дуже зручно за допомогою графічного інтерфейсу (у чому вся суть). Проблеми шпаклівки / ssh мають більше спільного із слабкою підтримкою ssh у Windows, і вони не є унікальними для TortoiseGit.
autocrlf
заважає налаштуванню в графічному інтерфейсі (тобто не попереджає про постановку, як GE);
Я використовую 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, який не мав цієї функції, і це дуже зручно. Дає миттєвий відгук про те, чи є якісь незмінені зміни чи ні.
Для швидкої та простої компіляції, налаштування та побудови розширень GitExtensions краще (C #), ніж TortoiseGit (Visual C ++ MFC)
Для переносимості GitExtensions краще (.NET для Windows / mono на Linux / Mac), ніж TortoiseGit (лише Win32 / 64)
Щоб використовувати накладення піктограм у Провіднику, використовуйте TortoiseGit
Для виконання деяких функцій TortoiseGit краще, оскільки він викликає статичну / динамічну бібліотеку для отримання результату зі сховища, тоді як GitExtensions викликає лише командний рядок git.exe, який має більші накладні витрати.
Для переходу з TortoiseSVN TortoiseGit буде більш знайомий з GitExtensions
ДАТА: 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 має всі три основні сховища сховища контролю версій і є дуже хорошим редактором.