Visual StudioでのGitの使用[終了]


1455

長い間Visual SourceSafeのユーザー(および嫌い)として、SVNへの切り替えについて同僚と話し合っていました。代わりにGitの使用を提案しました。どうやら、中央サーバーがなくてもピアツーピアとして使用できるためです(私たちは3人の開発者チームです)。

GitとVisual Studioを統合するツールについては何も見つかりませんでした。そのようなものは存在しますか?

Visual StudioでGitを使用するために利用できるテクノロジーは何ですか?そして、私が始める前に、それらがどのように異なるかについて知っておくべきことは何ですか?


4
VS 2010のGitソース管理プロバイダーを追加したので、引き続き機能します。
Wade73 2012

3
このチュートリアルをVSチームからチェックアウトしてください。次のアップデート; VS 2012のUpdate 2はいつでも提供されます。こちらからVS2012のコミュニティテクノロジープレビュー(CTP)をダウンロードすることもできます。または、CMMI、アジャイル、スクラム1/2などを使用している場合は、無料のアカウント(パブリックまたはプライベートクラウドインスタンスの両方)にサインアップし、メンバー(チームメイト、クライアント)をWebベースのTFS tfs.visualstudioの
アニー

3
私はVisual Studioとgitを2年間使用しています。この問題の最善の解決策は、Atlassians SourceTreeのような別のソース管理アプリケーションを使用することです。これは無料で、インストールが簡単で、優れたGUIを備え、ユーザーフレンドリーです。ChromeでWebを閲覧するのと同じように、複数のリポジトリ(別のプロジェクト)を閲覧でき、最も重要なのは、複数のソース管理システムをサポートします。試してみる!あなたは失望することはありません、私はあなたに保証します!
Fazi 2014年

2
GitはVisual Studio 2013からネイティブでサポートされています
rustyx

17
私は1342人がこの質問に賛成票を投じた方法が大好きで、とにかく馬鹿がやって来てそれを閉じます。良いStackOverfolow ....非常に多くの人が非常に役立つと思うので、SOの基準に適合しない場合はどうなりますか。このウェブサイトのポイントは参考になりますか?
thebunnyrules 2017

回答:


1070

2013年1月、Microsoft すべてのALM製品に完全なGitサポートを追加すると発表しました。彼らは Gitソース管理統合を追加するVisual Studio 2012のプラグイン公開しました

または、Visual Studio 2005、2008、2010、2012のアドインとWindowsエクスプローラーの統合を含むGit Extensionsというプロジェクトがあります。定期的に更新されており、いくつかのプロジェクトで使用しているため、非常に便利です。

別のオプションは、Gitソース管理プロバイダーです。


9
ted.dennison:このページ(code.google.com/p/gitextensions)によると、それはVS 2005/2008プラグインです。
ジョナス

10
私自身を修正するには-ソースはGithubでホストされていますが、MSIはそうではありません。
クリスS

5
私はgit拡張機能をインストールしましたが、それはビジュアルスタジオによって「完全に」機能し、完全には統合されていません。ソリューションエクスプローラーからのチェックイン/チェックアウトを可能にするソリューションはありますか?
ダニ

4
ダニ、誰かがVSのGitソース管理プロバイダーに取り組んでいますが、それは少し深いレベルの統合を提供しているようです:gitscc.codeplex.com
Jon Rimmer

3
VS 2012のオプションはありますか?
Earth Engine

202

プロトコルバッファーのC#への移植にVisual StudioでGitを使用しています。GUIは使用しません。VisualStudioだけでなくコマンドラインも開いたままにします。

ほとんどの場合それで問題ありません-唯一の問題は、ファイルの名前を変更したい場合です。GitとVisual Studioはどちらも名前を変更するためのものです。Visual Studioで名前を変更するのもよい方法だと思います。後でGit側で行うことには注意してください。これは少し苦痛でしたが、内容はほとんど同じであることがわかるので、実際にはGit側ではかなりシームレスであるはずだと聞きました。(通常はまったく同じではありません。クラスIMEの名前を変更するときに、ファイルの名前を変更する傾向があります。)

しかし、基本的には-はい、それはうまくいきます。私はGitの初心者ですが、必要なすべてのことを実行できます。binとobj、および* .userのgit ignoreファイルがあることを確認してください。


35
VSが名前の変更を行う場合、gitは問題ないはずです。gitログで適切な名前変更を追跡するには、変更の「削除」部分を「追加」部分と同じコミットでステージングする必要があります。git add -Aは、.gitignoreが最新の場合にこれを簡単にします。
CBベイリー

40
私もgitの初心者です。実を言うと、コマンドラインから使用するのが好きです。私は、GUIのgit powerを「賢く」しようとし、背中の後ろに「魔法」をかけようとするのは少し怖いでしょう。
09

1
アドバイスありがとうございます。私はgit(およびgithub)に移動しただけで、振り返ることはありません。私のクライアントは、perforceを使用しています(ハァッ!)。私の計画は、PERFORCEのから1つのアウトを作るのgitで私の仕事を、そして後ろにそれをチェックすることですので。
マーク・ベックウィズ

7
@CallMeLaNN:あなたは、Gitの初心者がコマンドラインを使用するのが難しいという大きな仮定を立てています。2009
Jon Skeet

私は通常、.user、*。suo、bin、obj 、. と_ *を無視リストに追加...上記のいずれかを追加したい場合は、手動で追加できます。
Tracker1 2011年

93

Gitソース管理プロバイダーは、GitをVisual Studioと統合する新しいプラグインです。


2005年に機能させるチャンスはありますか?
Art

3
上手。TBHこのグラフィカルインターフェイスは、VS 2010内でgitのGUIを検索したときにまさに探していたものです。投稿していただきありがとうございます。他の答えは私が必要とするものではありません。VisualSVNと比較して劣っています。
JDPeckham 2012年

1
インストールする前に、marketplace.visualstudio.com / …のレビューセクションを確認することをお勧めします
QMasterは2018年

53

私はこれについて少し検討しました(SubversionとGitの両方で)。Visual Studioには、実際にはソース管理統合APIがあり、サードパーティのソース管理ソリューションをVisual Studioに統合できます。しかし、ほとんどの人はいくつかの理由でそれを気にしません。

1つ目は、APIは、ロックされたチェックアウトワークフローを使用していることを前提としています。より多くのフックが実装されているため、実装が非常に高額であるか、より近代的な編集とマージのワークフローを使用している場合は、単純に意味がありません。

2つ目(関連)は、SubversionとGitの両方が推奨する編集/マージワークフローを使用している場合、Visual Studioの統合は実際には必要ないということです。SourceSafeとVisual Studioの統合についての最も重要なことは、ユーザー(およびエディター)が、所有しているファイル、編集する前にチェックアウトする必要があるファイル、および必要な場合でもチェックアウトできないファイルを一目で確認できることです。次に、ファイルを編集するときに、必要なリビジョン管理ブードゥーを実行するのに役立ちます。これらはいずれも、典型的なGitワークフローの一部ではありません。

Git(または通常はSVN)を使用している場合、リビジョン管理の相互作用はすべて、開発セッションの前または後(すべてが機能し、テストされた後)に行われます。その時点で、別のツールを使用するのはそれほど難しくありません。あなたは絶えず前後に切り替える必要はありません。


22
ファイルやディレクトリを移動したり名前を変更したりしませんか?数か月前にVisualSVNを使い始めて、二度と戻ることができませんでした。
JohnOpincar 2009

10
@TED私にとってこれは、長い開発の後、チェックインするまですべてのファイル変更の理由を覚えておく必要があることを意味します。何かに取り組んでいて、無関係な領域で修正する必要がある何かをチェックしたい場合は、修正し、その変更をメモリから削除できることを確認してチェックインします。私はどちらかと言えばVS内からこれを行います
Peter M

4
Git Extensions Visual Studioプラグインは、Microsoftが提供する旧式のロックされたチェックアウトのソース管理APIにそれ自体をかけようとはしません。編集とマージのワークフローに非常に適しています。基本的には、IDE内にコミット/プッシュ/プルとファイル履歴を追加するだけです。コンテキストメニューにファイル履歴があると非常に便利です。
Jacob Stanley

3
チェックインのためにビジュアルスタジオから出なければならないので、チェックインの間隔が長くなるので、主に反対します。一日の初めにすでにチェックアウトしていて、終わりまで(または悪い日は後で)チェックインしない人が多すぎます。Visual Studioとの統合により、ワークフローのソース管理を常に維持できます。
Chris McGrath

8
VS2005(VS2003?)の時点でのVisual Studioソース管理統合は、特にチェックアウトチェックインモデルに依存していません。たとえば、AnkhSVNを見てください。名前の変更などがスムーズになるため、私はVS統合を好みます。
Roger Lipscombe 2010

38

Gitはツリー全体で作業しているので、ファイルベースであるか、またはcheckout-edit-commitパターンに従うソース管理ツールよりもIDE統合のメリットが少ないことがわかりました。もちろん、ボタンをクリックして履歴を調べたほうがいい場合もありますが、それを逃してはいけません。

本当のすべきことは、共有リポジトリに入れるべきではないものでいっぱいの.gitignoreファイルを取得することです。鉱山は一般的に(他のものと一緒に)以下のものを含んでいます:

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

ただし、これはC ++に大きく偏り、クラスウィザードスタイルの機能をほとんどまたはまったく使用しません。

私の使用パターンは次のようなものです。

  1. コード、コード、Visual Studioのコード。

  2. 満足したら(コードをコミットするための適切な中間ポイント、Gitに切り替え、変更をステージングし、差分を確認します。明らかに問題がある場合は、Visual Studioに切り替えて修正し、それ以外の場合はコミットします。

コマンドプロンプトからGitでマージ、ブランチ、リベース、またはその他の凝ったSCM作業を行うのは簡単です。Visual Studioは通常、その下での変更にかなり満足していますが、プロジェクトファイルを大幅に変更した場合、一部のプロジェクトを再読み込みする必要がある場合があります。

私は、Gitの有用性が、IDEの完全な統合がないというマイナーな不便さを上回っていることを発見しましたが、それは、ある程度、好みの問題です。


11
そうではありません。プロジェクトファイルをバージョン管理下に置く必要があります。
CBベイリー

1
これは非常に重要です。いったんコミットを開始して.gitignoreに何かを含めるのを忘れると、控えめに言ってもブランチは苦痛です...
Benjol

3
@ベンジョル:それはそんなに痛くないはずです。あなたはちょうどあなたのアクティブなブランチのヒントを必要git rm <file>echo <file> >>.gitignore; git add .gitignoreしています。変更をコミットしたら、いつでも他のブランチに修正をチェリーピックできます。
CBベイリー

1
@Charlesベイリーは、この質問に私の冒険を参照してください。stackoverflow.com/questions/1887049/...
Benjol

9
@Mike Brown:ユーザー固有の設定である* .userファイルを無視しています。
Srdjan Jovcic

31

マイクロソフトは最近、Git for Visual studio 2012(アップデート2)を発表しました。まだ遊んでいませんが、このビデオは有望に見えます。

Visual Studio 2012からGitを使用する方法の簡単なチュートリアルを次に示します。


マイクロソフト公式商品ですのでお勧めです。そしてそれはVS 2012 Expressにインストールすることができます
Cheung


26

ありますGitのためのVisual Studioツールマイクロソフトによっては。ただし、Visual Studio 2012(アップデート2)のみをサポートしています。


Visual Studio 2012の場合、これが最良の答えです。彼らは実装に多くの努力を払ったようです、そして私の経験ではそれは期待通りに機能します!
RoelF 2013

2
Microsoftが「Visual Studio Tools for Git」を構成してプライベートGithubリポジトリを使用する方法を理解できませんでした。それに関するドキュメントやチュートリアルを見たことがありますか?
golliher 2013

インストールする前に、marketplace.visualstudio.com / …のレビューセクションを確認することをお勧めします
QMasterは2018年


18

MicrosoftがVisual Studioで行ったGitサポートは、基本的な作業(コミット/フェッチ/マージおよびプッシュ)には十分です。私のアドバイスはただそれを避けることです...

私はGitExtensionsを非常に好みます(またはSourceTreeの割合を減らします)。DAGを見ることは、Gitがどのように機能するかを理解するために私にとって本当に重要だからです。そして、あなたはあなたのプロジェクトの他の貢献者が何をしたかについてより多くのことに気づいています!

Visual Studioでは、ファイル間の差分をすぐに確認したり、コミットしたり、(インデックスに追加したり)変更の一部のみをコミットしたりすることはできません。あなたの歴史を閲覧することも良くありません...すべてが苦痛な経験で終わります!

そして、たとえば、GitExtensionsには興味深いプラグインがバンドルされています:バックグラウンドフェッチ、GitFlowなど...そして今、継続的な統合

Visual Studio 2015のユーザーの場合、GitHub拡張機能をインストールするとGitが形になっています。しかし、外部ツールの方が優れています;-)


GitExtensionsは2015年と比較して機能しますか?メニューが機能しないgithub.com/gitextensions/gitextensions/issues/2815
raklos




10

Jon Rimmerの指示どおり、GitExtensionsを使用できます。GitExtensionsはVisual Studio 2005およびVisual Studio 2008で機能します。.Addinファイルを手動でコピーして構成した場合、Visual Studio 2010でも機能します。


いいもの。ユーザーインターフェースをテストして承認しているのは誰なのかと思います。すべてのメッセージが非常に混乱しています...私の推測では、ユーザーが急いでそれを公開し、ユーザーが何を不平を言うのかを確認しています。
ramnz 2013

10

現在、Visual Studio(2010および12)のGitソース管理には2つのオプションがあります。

  1. Gitソース管理プロバイダー
  2. Microsoft Gitプロバイダー

私は両方を試してみましたが、最初のものはより成熟していて、より多くの機能を備えています。たとえば、亀のgitとgitの拡張機能の両方でうまく機能し、それらの機能も公開されています。

:どちらの拡張機能を使用する場合でも、機能するように有効にする必要がありますTools -> Options -> Source control -> Plugin Selection


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.