Menggunakan Git dengan Visual Studio [ditutup]


1455

Sebagai pengguna Visual SourceSafe lama (dan pembenci) saya sedang mendiskusikan beralih ke SVN dengan seorang rekan; dia menyarankan menggunakan Git sebagai gantinya. Karena, tampaknya, ini dapat digunakan sebagai peer-to-peer tanpa server pusat (kami adalah tim 3-pengembang).

Saya belum dapat menemukan apa pun tentang alat yang mengintegrasikan Git dengan Visual Studio, - apakah hal semacam itu ada?

Teknologi apa yang tersedia untuk menggunakan Git dengan Visual Studio? Dan apa yang perlu saya ketahui tentang perbedaannya sebelum saya mulai?


4
Saya baru saja menambahkan Penyedia Kontrol Sumber Git untuk VS 2010, jadi masih berfungsi.
Wade73

3
Checkout ini tutorial dari tim VS . Pembaruan berikutnya; Pembaruan 2 untuk VS 2012 akan datang kapan saja sekarang. Anda juga dapat mengunduh preview teknologi komunitas (CTP) untuk VS2012 dari sini . Sebagai alternatif, jika Anda menyukai CMMI, Agile, Scrum 1/2 dll. Anda dapat mendaftar untuk akun gratis (contoh cloud publik atau pribadi) & mengundang anggota (rekan tim, klien) untuk memproyeksikan proyek Anda pada TFS berbasis web tfs.visualstudio. com
Annie

3
Saya telah menggunakan Visual Studio dan git selama dua tahun sekarang. Saya akan mengatakan bahwa solusi terbaik untuk masalah ini adalah dengan hanya menggunakan aplikasi kontrol sumber terpisah seperti AtlasTans SourceTree. Gratis, mudah dipasang, memiliki GUI yang baik dan ramah pengguna, Anda dapat menjelajahi banyak repositori (alias proyek berbeda) seperti halnya Anda menjelajah web di Chrome, dan, yang paling penting, mendukung berbagai sistem kontrol sumber. Cobalah! Anda tidak akan kecewa, saya jamin!
Fazi

2
Git didukung secara native mulai dari Visual Studio 2013
rustyx

17
Saya suka bagaimana 1342 orang telah mengangkat pertanyaan ini dan beberapa orang idiot datang dan menutupnya. Good going StackOverfolow .... Apa bedanya jika tidak sesuai dengan kriteria SO jika begitu banyak orang merasa sangat membantu. Bukankah maksud dari situs web ini adalah untuk membantu?
thebunnyrules

Jawaban:


1070

Pada Jan 2013, Microsoft mengumumkan bahwa mereka menambahkan dukungan penuh Git ke semua produk ALM mereka. Mereka telah menerbitkan plugin untuk Visual Studio 2012 yang menambahkan integrasi kontrol sumber Git.

Atau, ada proyek yang disebut Git Extensions yang mencakup tambahan untuk Visual Studio 2005, 2008, 2010 dan 2012, serta integrasi Windows Explorer. Secara teratur diperbarui dan setelah menggunakannya pada beberapa proyek, saya merasa sangat berguna.

Opsi lain adalah Penyedia Kontrol Sumber Git .


9
ted.dennison: Menurut halaman ini ( code.google.com/p/gitextensions ) itu adalah plugin VS 2005/2008.
Jonas

10
Untuk memperbaiki diri - sumber di-host di Github, MSI tidak.
Chris S

5
Saya telah menginstal ekstensi git, ini bekerja dengan studio visual "by", dan tidak sepenuhnya terintegrasi. Apakah ada solusi yang memungkinkan check-in - check-out dari Solution Explorer?
Dani

4
Dani, seseorang sedang bekerja pada penyedia kontrol sumber Git untuk VS yang tampaknya memberikan tingkat integrasi yang sedikit lebih dalam: gitscc.codeplex.com
Jon Rimmer

3
Apakah ada opsi untuk VS 2012?
Earth Engine

202

Saya menggunakan Git dengan Visual Studio untuk port Protokol Buffer ke C #. Saya tidak menggunakan GUI - Saya hanya membuka baris perintah dan juga Visual Studio.

Sebagian besar tidak masalah - satu-satunya masalah adalah ketika Anda ingin mengganti nama file. Baik Git dan Visual Studio lebih suka bahwa mereka yang menamainya kembali. Saya pikir mengganti nama itu di Visual Studio adalah cara untuk pergi - hanya hati-hati apa yang Anda lakukan di sisi Git sesudahnya. Walaupun ini agak menyusahkan di masa lalu, saya pernah mendengar bahwa itu sebenarnya harus mulus di sisi Git, karena dapat melihat bahwa isinya sebagian besar akan sama. (Tidak sepenuhnya sama, biasanya - Anda cenderung mengganti nama file saat Anda mengganti nama kelas, IME.)

Tetapi pada dasarnya - ya, itu berfungsi dengan baik. Saya seorang pemula Git, tetapi saya bisa membuatnya melakukan semua yang saya butuhkan. Pastikan Anda memiliki file abaikan git untuk bin dan obj, dan * .user.


35
git harus baik-baik saja dengan VS melakukan penggantian nama. Untuk pelacakan penggantian nama yang baik di log git, Anda hanya perlu memastikan bahwa Anda membuat bagian 'hapus' dari perubahan di komit yang sama dengan bagian 'tambahkan'. git add -A mempermudah ini jika .gitignore Anda mutakhir.
CB Bailey

40
Saya seorang pemula git juga, dan sejujurnya saya lebih suka menggunakannya dari baris perintah. Saya akan sedikit takut untuk menangani kekuatan git ke GUI yang mencoba menjadi "pintar" dan melakukan "sihir" di belakang saya.
Hasen

1
Terima kasih atas sarannya. Saya baru saja pindah ke git (dan github) dan tidak akan pernah melihat ke belakang. Klien saya menggunakan perforce (ugh!). Jadi rencanaku adalah membuat satu checkout dari terpaksa, melakukan pekerjaanku dengan git, lalu memeriksanya kembali.
Mark Beckwith

7
@CallMeLaNN: Anda membuat asumsi besar di sana, tentang pemula untuk Git mengalami kesulitan saat menggunakan baris perintah. Lihatlah komentar hasan j dari April 2009.
Jon Skeet

Saya biasanya menambahkan .user, * .suo, bin, obj,. dan _ * ke daftar abaikan saya ... jika ada satu di atas yang ingin saya tambahkan, saya masih bisa menambahkannya secara manual.
Tracker1

93

Penyedia Kontrol Sumber Git adalah plug-in baru yang mengintegrasikan Git dengan Visual Studio.


Apakah ada peluang untuk membuatnya berfungsi di tahun 2005?
Seni

3
Baik. TBH antarmuka grafis ini persis apa yang saya cari ketika saya mencari GUI untuk git dalam VS 2010. Terima kasih telah memposting ini. Jawaban lain bukanlah yang saya butuhkan. Mereka buruk dibandingkan dengan VisualSVN.
JDPeckham

1
Saya sarankan melihat bagian ulasan di marketplace.visualstudio.com/... sebelum memutuskan untuk menginstalnya.
QMaster

53

Saya telah melihat sedikit ini di tempat kerja (baik dengan Subversion dan Git). Visual Studio sebenarnya memiliki API integrasi kontrol sumber untuk memungkinkan Anda mengintegrasikan solusi kontrol sumber pihak ketiga ke dalam Visual Studio. Namun, kebanyakan orang tidak peduli dengan itu karena beberapa alasan.

Yang pertama adalah bahwa API mengasumsikan Anda menggunakan alur kerja checkout yang terkunci. Ada banyak kait di dalamnya yang mahal untuk diimplementasikan, atau hanya tidak masuk akal ketika Anda menggunakan alur kerja edit-gabung yang lebih modern.

Yang kedua (yang terkait) adalah bahwa ketika Anda menggunakan alur kerja edit-gabungan yang didorong oleh Subversion dan Git, Anda tidak benar - benar membutuhkan integrasi Visual Studio. Hal pembunuh utama tentang integrasi SourceSafe dengan Visual Studio adalah bahwa Anda (dan editor) dapat mengetahui secara sekilas file mana yang Anda miliki, yang harus diperiksa sebelum Anda dapat mengedit, dan mana yang tidak dapat Anda periksa meskipun Anda mau. Maka itu dapat membantu Anda melakukan revisi-kontrol voodoo apa pun yang perlu Anda lakukan ketika Anda ingin mengedit file. Tidak ada yang bahkan merupakan bagian dari alur kerja Git yang khas.

Ketika Anda menggunakan Git (atau biasanya SVN), interaksi kontrol revisi Anda semua terjadi baik sebelum sesi pengembangan Anda, atau setelah itu (setelah Anda memiliki semuanya berfungsi dan diuji). Pada titik itu sebenarnya tidak terlalu merepotkan untuk menggunakan alat yang berbeda. Anda tidak selalu harus bolak-balik.


22
Apakah kalian tidak pernah memindahkan atau mengganti nama file / direktori? Saya mulai menggunakan VisualSVN beberapa bulan yang lalu dan saya tidak pernah bisa kembali.
JohnOpincar

10
@TED ​​Bagi saya ini berarti bahwa setelah perkembangan yang panjang Anda harus mengingat alasan untuk setiap perubahan file sampai Anda check-in. Jika saya mengerjakan sesuatu dan melihat sesuatu yang perlu diperbaiki di area yang tidak terkait saya ingin memeriksa, perbaiki, dan periksa mengetahui bahwa saya dapat membersihkan perubahan itu dari ingatan saya. Saya lebih suka melakukan ini dari dalam VS
Peter M

4
Plugin Git Extensions Visual Studio tidak mencoba untuk menyisipkan sendiri ke API kontrol sumber checkout terkunci lama yang telah disediakan oleh Microsoft. Ini sangat cocok untuk alur kerja edit-merge dan pada dasarnya hanya menambahkan commit / push / pull dan riwayat file tepat di dalam IDE. Memiliki riwayat file pada menu konteks sangat berguna!
Jacob Stanley

3
Saya tidak setuju terutama karena harus keluar dari studio visual untuk check in mendorong waktu yang lebih lama antara check-in. Terlalu banyak orang sudah checkout di awal hari dan tidak check-in sampai akhir (atau lebih buruk hari kemudian). Integrasi dengan studio visual memungkinkan Anda untuk terus mengontrol sumber dalam alur kerja Anda.
Chris McGrath

8
Integrasi kontrol sumber Visual Studio pada VS2005 (VS2003?) Tidak terlalu condong ke model checkout-checkin. Lihatlah AnkhSVN misalnya. Saya lebih suka integrasi VS, karena kemudian mengganti nama, dll. Lebih lancar.
Roger Lipscombe

38

Saya menemukan bahwa Git, bekerja pada seluruh pohon seperti halnya, mendapat manfaat lebih sedikit dari integrasi IDE daripada alat kontrol sumber yang berbasis file atau mengikuti pola checkout-edit-commit. Tentu saja ada contoh di mana bisa menyenangkan untuk mengklik tombol untuk melakukan pemeriksaan sejarah, tapi saya tidak terlalu merindukan itu.

Yang harus dilakukan adalah mendapatkan file .gitignore Anda penuh dengan hal-hal yang seharusnya tidak ada dalam repositori bersama. Milik saya umumnya berisi (di antara hal-hal lain) berikut ini:

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

tapi ini sangat C ++ bias dengan sedikit atau tanpa menggunakan fungsi gaya kelas penyihir.

Pola penggunaan saya adalah seperti berikut ini.

  1. Kode, kode, kode dalam Visual Studio.

  2. Ketika senang (titik perantara yang masuk akal untuk mengkomit kode, beralih ke Git, tahapan ubah dan ulasan berbeda. Jika ada yang salah, kembali ke Visual Studio dan perbaiki, jika tidak, komit.

Penggabungan, cabang, rebase, atau hal-hal SCM mewah lainnya mudah dilakukan di Git dari command prompt. Visual Studio biasanya cukup senang dengan hal-hal yang berubah di bawahnya, walaupun terkadang perlu memuat ulang beberapa proyek jika Anda telah mengubah file proyek secara signifikan.

Saya menemukan bahwa kegunaan Git lebih besar daripada ketidaknyamanan kecil karena tidak memiliki integrasi penuh IDE tetapi, sampai batas tertentu, masalah selera.


11
Anda tidak, Anda harus memiliki file proyek Anda di bawah kontrol versi.
CB Bailey

1
Ini sangat penting - pulih dari lupa untuk memasukkan sesuatu ke dalam .gitignore begitu Anda mulai melakukan dan bercabang itu menyakitkan, untuk sedikitnya ...
Benjol

3
@ Benjol: Seharusnya tidak begitu menyakitkan. Anda hanya perlu git rm <file>dan echo <file> >>.gitignore; git add .gitignorepada ujung cabang aktif Anda. Setelah Anda melakukan perubahan, Anda selalu dapat memilih cherry-fix ke cabang lain.
CB Bailey

1
@ Charles Bailey, lihat petualangan saya dalam pertanyaan ini: stackoverflow.com/questions/1887049/…
Benjol

9
@ Mike Brown: Dia mengabaikan file * .user, yang merupakan pengaturan khusus pengguna.
Srdjan Jovcic


28

Juga jangan lewatkan TortoiseGit ... https://tortoisegit.org/


Ya, ini adalah UI yang baik, tetapi tidak, tidak terintegrasi dengan Visual Studio.
Scott Rippey

3
Penyedia Kontrol Sumber Git menambahkan perintah TortoiseGit ke menu konteks di Visual Studio.
HotN

26

Ada Alat Visual Studio untuk Git oleh Microsoft. Ini hanya mendukung Visual Studio 2012 (pembaruan 2).


untuk visual studio 2012, ini adalah jawaban terbaik. Tampaknya mereka melakukan banyak upaya dalam implementasi, dan dalam pengalaman saya ini berfungsi seperti yang diharapkan!
RoelF

2
Saya belum dapat menemukan cara mengkonfigurasi "Visual Studio Tools for Git" oleh Microsoft untuk menggunakan repo Github pribadi. Pernahkah Anda melihat dokumentasi atau tutorial tentang itu?
golliher

Saya sarankan melihat bagian ulasan di marketplace.visualstudio.com/... sebelum memutuskan untuk menginstalnya.
QMaster


18

Dukungan Git yang dilakukan oleh Microsoft dalam Visual Studio cukup baik untuk pekerjaan dasar (komit / ambil / gabungkan dan dorong). Saran saya hanya untuk menghindarinya ...

Saya sangat suka GitExtensions (atau dalam proporsi SourceTree kurang ). Karena melihat DAG bagi saya sangat penting untuk memahami cara kerja Git. Dan Anda jauh lebih menyadari apa yang telah dilakukan kontributor lain untuk proyek Anda!

Di Visual Studio, Anda tidak dapat dengan cepat melihat perbedaan antara file atau melakukan, atau (menambah indeks) dan hanya melakukan sebagian modifikasi. Menelusuri riwayat Anda juga tidak baik ... Semua itu berakhir dengan pengalaman yang menyakitkan!

Dan, misalnya, GitExtensions dibundel dengan plugin yang menarik: pengambilan latar belakang, GitFlow, ... dan sekarang, integrasi berkelanjutan !

Untuk pengguna Visual Studio 2015 , Git mulai terbentuk jika Anda menginstal ekstensi GitHub. Tetapi alat eksternal masih lebih baik ;-)


apakah GitExtensions bekerja untuk Anda di vs 2015? menu tidak berfungsi untuk saya github.com/gitextensions/gitextensions/issues/2815
raklos




10

Seperti yang disebutkan oleh Jon Rimmer, Anda dapat menggunakan GitExtensions. GitExtensions berfungsi di Visual Studio 2005 dan Visual Studio 2008, juga berfungsi di Visual Studio 2010 jika Anda menyalin dan mengonfigurasi file .Addin secara manual.


bagus Saya ingin tahu siapa yang menguji dan menyetujui antarmuka pengguna ... pesan di seluruh sangat membingungkan ... satu-satunya tebakan saya adalah mereka bergegas untuk memadamkannya dan melihat apa / mengapa pengguna mengeluh.
ramnz

10

Saat ini ada 2 opsi untuk Kontrol Sumber Git di Visual Studio (2010 dan 12):

  1. Penyedia Kontrol Sumber Git
  2. Penyedia Microsoft Git

Saya telah mencoba keduanya dan menemukan yang pertama lebih matang, dan memiliki lebih banyak fitur. Misalnya ia bermain dengan baik dengan ekstensi tortoise git dan git, dan bahkan mengekspos fitur mereka.

Catatan : Apa pun ekstensi yang Anda gunakan, pastikan Anda mengaktifkannya agar ekstensi Tools -> Options -> Source control -> Plugin Selectionitu berfungsi.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.