Використання Git з Visual Studio [закрито]


1455

Як давній користувач Visual SourceSafe (і ненависний) я обговорював перехід на SVN з колегою; він запропонував використовувати Git замість цього. Оскільки, мабуть, його можна використовувати як одноранговий без центрального сервера (ми - команда 3 розробників).

Я не зміг знайти нічого про інструменти, що інтегрують Git з Visual Studio, хоча - чи існує така річ?

Які технології доступні для використання Git з Visual Studio? І що мені потрібно знати про те, чим вони відрізняються до початку?


4
Я щойно додав постачальника управління джерелами Git для VS 2010, тому він все ще працює.
Wade73

3
Оформити замовлення цього підручника з команди VS . Наступне оновлення; Оновлення 2 для VS 2012 надходить будь-якого дня. Ви також можете завантажити попередній перегляд технологій спільноти (CTP) для VS2012 звідси . Крім того, якщо ви перебуваєте в CMMI, Agile, Scrum 1/2 тощо, ви можете зареєструватися на безкоштовний акаунт (як публічний, так і приватний хмарні екземпляри) та запросити членів (товаришів по команді, клієнтів) для участі в проекті на веб-базі TFS tfs.visualstudio. com
Енні

3
Я вже два роки використовую Visual Studio і git. Я б сказав, що найкращим рішенням цієї проблеми є просто використовувати окремий додаток для управління джерелом, як Atlassians SourceTree. Він безкоштовний, простий в установці, має хороший графічний інтерфейс і зручний для користувачів, ви можете переглядати декілька сховищ (також різних проектів) так само, як ви переглядаєте Інтернет в Chrome, і, що найголовніше, підтримувати декілька систем управління джерелами. Спробувати! Ви не будете розчаровані, запевняю вас!
Фазі

2
Git підтримується спочатку , починаючи з Visual Studio 2013
rustyx

17
Мені подобається, як 1342 люди схвалили це питання, і якийсь ідіот все одно приходить і закриває його. Добре йде StackOverfolow .... Що має значення, якщо він не відповідає критеріям SO, якщо так багато людей вважають його таким корисним. Чи не сенс цього веб-сайту бути корисним?
thebunnyrules

Відповіді:


1070

У січні 2013 року Microsoft оголосила, що додає повну підтримку Git у всі свої продукти ALM. Вони опублікували плагін для Visual Studio 2012, який додає інтеграцію керування джерелами Git.

Крім того, існує проект під назвою Git Extensions, який включає надбудови для Visual Studio 2005, 2008, 2010 та 2012 років, а також інтеграцію Windows Explorer. Він регулярно оновлюється, і використовуючи його в декількох проектах, я вважаю це дуже корисним.

Інший варіант - постачальник управління джерелами Git .


9
ted.dennison: Відповідно до цієї сторінки ( code.google.com/p/gitextensions ) це плагін VS 2005/2008.
Йонас

10
Щоб виправити себе - джерело розміщено на Github, MSI - ні.
Chris S

5
Я встановив розширення git, він працює "візуальною студією" і не повністю інтегрований. Чи є рішення, яке дозволяє реєстрацію - виїзд із Провідника рішень?
Дани

4
Дани, хтось працює над постачальником послуг Git для управління VS, який, здається, забезпечує дещо глибший рівень інтеграції: gitscc.codeplex.com
Джон Ріммер

3
Чи є варіанти для VS 2012?
Земляний двигун

202

Я використовую Git з Visual Studio для мого порту буферів протоколів до C #. Я не використовую GUI - я просто тримаю командний рядок відкритим, а також Visual Studio.

Здебільшого це добре - єдина проблема, коли потрібно перейменувати файл. І Git, і Visual Studio вважають за краще, щоб вони перейменували його. Я думаю, що перейменування його у Visual Studio - це шлях, але - будьте обережні, що ви робите після цього на стороні Git. Хоча в минулому це було сильним болем, я чув, що насправді це має бути досить безшовно на стороні Git, тому що можна помітити, що вміст буде здебільшого однаковим. (Зазвичай, не однаково, як правило, ви перейменовуєте файл під час перейменування класу, IME.)

Але в основному - так, це прекрасно працює. Я новачок Git, але можу змусити його зробити все, що мені потрібно. Переконайтеся, що у вас є файл ігнорування git для bin та obj та * .user.


35
git має бути добре, коли VS робить перейменування. Для гарного відстеження перейменування в журналі git ви просто повинні бути впевнені, що ви ставите «видалити» частину зміни в тій самій фіксації, що і частина «додати». git add -A полегшує це, якщо ваш .gitignore оновлений.
CB Bailey

40
Я теж новачок із git, і щоб сказати вам правду, я вважаю за краще використовувати його з командного рядка. Мені було б трохи страшно звертатися з силою git до GUI, який намагається бути "розумним" і робити якусь "магію" за моєю спиною.
hasen

1
Дякую за пораду. Я щойно перейшов на git (та github) і більше ніколи не озирнусь. Мій клієнт використовує perforce (цьфу!). Тож мій план полягає в тому, щоб зробити один замовлення у перфорсера, виконувати свою роботу з git, а потім перевірити його.
Марк Беккіт

7
@CallMeLaNN: Ви робите велике припущення, що для новачків у Git виникають труднощі при використанні командного рядка. Подивіться на коментар hasan j з квітня 2009 р.
Джон Скіт

Я зазвичай додаю .user, * .suo, bin, obj,. та _ * до мого списку ігнорування ... якщо є одне із вищезазначених, які я хочу додати, я все ще можу додати його вручну.
Tracker1

93

Git Source Control Provider - новий плагін, який інтегрує Git з Visual Studio.


Чи є шанс змусити його працювати в 2005 році?
Арт

3
Добре. Графічний інтерфейс TBH - це саме те, що я шукав, коли шукав графічний інтерфейс для git в межах VS 2010. Дякую, що опублікував це. Інші відповіді - це не те, що мені потрібно. Вони бідні порівняно з VisualSVN.
JDPeckham

1
Рекомендую переглянути розділ огляду на marketplace.visualstudio.com/…, перш ніж вирішити його встановити.
QMaster

53

Я трохи розглядав це на роботі (як з Subversion, так і з Git). Visual Studio насправді має API інтеграції джерела управління, що дозволяє інтегрувати сторонні рішення для управління джерелами у Visual Studio. Однак більшість людей не турбуються з кількох причин.

Перший полягає в тому, що API в основному передбачає, що ви використовуєте робочий процес із заблокованою касою. У ньому багато гачків, які дорого реалізуються, або просто вирівнювати безглуздо, коли ви використовуєте більш сучасний робочий процес редагування та злиття.

Друга (пов'язана з цим) полягає в тому, що коли ви використовуєте робочий процес редагування-злиття, який заохочують і Subversion, і Git, вам не дуже потрібна інтеграція Visual Studio. Головне, що стосується інтеграції SourceSafe з Visual Studio, - це те, що ви (і редактор) можете з першого погляду сказати, які саме у вас є файли, які потрібно перевірити, перш ніж ви зможете редагувати, а які ви не можете перевірити, навіть якщо цього хочете. Тоді це допоможе вам зробити все, що вам потрібно зробити, коли ви хочете редагувати файл. Ніщо з цього навіть не є частиною типового робочого процесу Git.

Коли ви використовуєте Git (або SVN, як правило), ваші взаємодії з контролем ревізії мають місце або перед сеансом розробки, або після нього (після того, як у вас все буде працювати і протестовано). У той момент, щоб використовувати інший інструмент, це не так вже й сильно. Вам не доведеться постійно перемикатися вперед і назад.


22
Ви, хлопці, ніколи не пересуваєте чи перейменовуєте файли / каталоги? Я почав використовувати VisualSVN пару місяців тому, і я ніколи не міг повернутися назад.
JohnOpincar

10
@TED ​​Для мене це означає, що після тривалої розробки ви повинні пам’ятати причини кожної зміни файлу, поки не зареєструєтесь. Якщо я працюю над чимось і бачу щось, що потрібно виправити у непов’язаній області, я хотів би перевірити, виправити та перевірити, чи знаю, що я можу очистити цю зміну зі своєї пам'яті. Я вважаю за краще це зробити в межах VS
Peter M

4
Плагін Git Extensions Visual Studio не намагається ввійти в старий шкільний інтерфейс API управління заблокованими касами, який надав Microsoft. Це дуже добре підходить для робочого процесу редагування-об'єднання і в основному просто додає фіксацію / натискання / витягування та історію файлів прямо в IDE. Наявність історії файлів у контекстному меню надзвичайно корисно!
Джейкоб Стенлі

3
Я не згоден головним чином через те, що відвідування візуальної студії для перевірки заохочує більш тривалий час між реєстраціями. Занадто багато людей вже оформляють замовлення на початку дня і не заїжджають до кінця (або ще гірше днів пізніше). Інтеграція з візуальною студією дозволяє вам постійно тримати контроль джерела у своєму робочому процесі.
Кріс МакГрат

8
Інтеграція керування джерелами Visual Studio від VS2005 (VS2003?) Не особливо схиляється до моделі оформлення каси. Подивіться, наприклад, на AnkhSVN. Я віддаю перевагу VS інтеграції, тому що тоді перейменування тощо є більш плавними.
Роджер Ліпскомб

38

Я вважаю, що Git, працюючи над цілими деревами, отримує меншу вигоду від інтеграції IDE, ніж засоби управління джерелами, які базуються на файлах або керуються схемою оформлення замовлення-редагування-фіксації. Звичайно, є випадки, коли можна приємно натиснути на кнопку, щоб зробити деякий аналіз історії, але я цього дуже не пропускаю.

Справжньою обов`язком є ​​отримання файлу .gitignore повним речами, які не повинні знаходитись у спільному сховищі. Як правило, шахта містить (серед інших речей) наступне:

*.vcproj.*.user
*.ncb
*.aps
*.suo

але це значною мірою на C ++, з невеликим або без використання будь-якого функціонування стилю майстра класу.

Моя схема використання виглядає приблизно так.

  1. Код, код, код у Visual Studio.

  2. Коли щасливий (розумний проміжний пункт для введення коду, перемкніть на Git, зміни стадій та перегляд відрізняється. Якщо щось явно не так, поверніться до Visual Studio та виправте, інакше виконайте.

Будь-яке об'єднання, розгалуження, повторне базування даних або інший химерний SCM-матеріал легко зробити в Git з командного рядка. Visual Studio зазвичай задоволений змінами, що змінюються під цим, хоча іноді може знадобитися перезавантажити деякі проекти, якщо ви значно змінили файли проектів.

Я вважаю, що корисність Git переважає будь-які незначні незручності не мати повної інтеграції IDE, але це певною мірою питання смаку.


11
Ні, ви, безумовно, повинні мати файл свого проекту під контролем версій.
CB Bailey

1
Це дуже важливо - оговтатися від забуття включити щось у .gitignore, як тільки ви почнете вчиняти і розгалуження болісно, ​​якщо не сказати ...
Benjol

3
@Benjol: Це не повинно бути так боляче. Вам просто потрібно git rm <file>і echo <file> >>.gitignore; git add .gitignoreна підказках ваших активних гілок. Після того, як ви здійснили зміну, ви можете виправити виправлення на інших гілках.
CB Bailey

1
@Charles Бейлі, побачити мої пригоди в цьому питанні: stackoverflow.com/questions/1887049 / ...
Benjol

9
@Mike Brown: Він ігнорує * .user файли, які є налаштуваннями для користувача.
Серджан Йовчич

31

Microsoft нещодавно оголосила Git для Visual studio 2012 (оновлення 2). Я з цим ще не бавився, але це відео виглядає багатообіцяючим.

Ось короткий підручник щодо використання Git від Visual Studio 2012.


Я рекомендую цей, оскільки це офіційний продукт Microsoft. і його можна встановити на VS 2012 express та
Cheung

28

Також не пропустіть TortoiseGit ... https://tortoisegit.org/


Так, це хороший інтерфейс користувача, але ні, він не інтегрується з Visual Studio.
Скотт Ріппі

3
Постачальник управління джерелами Git додає команди TortoiseGit у контекстне меню Visual Studio.
HotN

26

Там в Інструменти Visual Studio Tools для Git з допомогою Microsoft. Він підтримує лише Visual Studio 2012 (оновлення 2).


для візуальної студії 2012, це найкраща відповідь. Здається, вони докладають багато зусиль для впровадження, і на мій досвід, це працює, як очікувалося!
RoelF

2
Мені не вдалося зрозуміти, як налаштувати Microsoft Visual Studio Tools для Git для використання приватного репортажу Github. Ви бачили якусь документацію чи навчальні посібники з цього приводу?
golliher

Рекомендую переглянути розділ огляду на marketplace.visualstudio.com/…, перш ніж вирішити його встановити.
QMaster


18

Підтримка Git, зроблена Майкрософт у Visual Studio, достатньо хороша для основної роботи (фіксація / отримання / об'єднання та натискання). Моя порада просто уникати цього ...

Я дуже віддаю перевагу GitExtensions (або меншою мірою SourceTree ). Тому що бачити DAG для мене дійсно важливо зрозуміти, як працює Git. І ви набагато більше знаєте, що зробили інші учасники вашого проекту!

У Visual Studio ви не можете швидко побачити різницю між файлами чи фіксацією, а також (додати до індексу) та здійснити лише частину змін. Переглянути свою історію теж не добре ... Все, що закінчується болючим досвідом!

Наприклад, GitExtensions укомплектовано цікавими плагінами: фонове отримання, GitFlow, ... і тепер, безперервна інтеграція !

Для користувачів Visual Studio 2015 Git формується, якщо встановити розширення GitHub. Але зовнішній інструмент все-таки краще ;-)


чи працює GitExtensions для вас у порівнянні з 2015 роком? меню не працює для мене github.com/gitextensions/gitextensions/isissue/2815
raklos



14

Найпростіше рішення, яке насправді працює досить добре, - додати команди TortoiseGit як зовнішні інструменти.

Рішення для додавання панелі інструментів Git (TortoiseGit) до Visual Studio


1
Ви також можете просто зателефонувати git безпосередньо з консолі диспетчера пакунків, яка є лише командним рядком повноважень. Або ... superuser.com/a/879561/135416
drzaus

10

Як зазначив Джон Ріммер, ви можете використовувати GitExtensions. GitExtensions працює в Visual Studio 2005 та Visual Studio 2008, він також працює в Visual Studio 2010, якщо ви вручну копіюєте та конфігуруєте файл .Addin.


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

10

В даний час є два варіанти керування джерелами Git у Visual Studio (2010 та 12):

  1. Провайдер контролю джерел Git
  2. Постачальник Microsoft Git

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

Примітка . Незалежно від розширення, яке ви використовуєте, переконайтеся, що ви включили його Tools -> Options -> Source control -> Plugin Selectionдля роботи.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.