web-dev-qa-db-ja.com

Visual StudioでGitを使う

長い間 Visual SourceSafe ユーザーとして(そして嫌い)私は _ svn _ への切り替えを同僚と話していました。彼は代わりに Git を使うことを提案しました。どうやら、それは中央サーバーなしでピアツーピアとして使用することができるようです(私達は3人の開発者チームです)。

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

GitをVisual Studioで使用するために利用できるテクノロジは何ですか?そして、始める前にそれらがどのように違うのかについて、私は何を知る必要がありますか?

1436
Herb Caudill

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

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

別のオプションは Git Source Control Provider です。

1069
Jon Rimmer

プロトコルバッファをC#に移植するために、Visual StudioでGitを使用しています。私はGUIを使用していません - Visual Studioと同様にコマンドラインを開いたままにしています。

大部分はそれで結構です - 唯一の問題はあなたがファイルの名前を変更したい時です。 GitとVisual Studioはどちらも、 they で名前を変更したいと考えています。私は、Visual Studioで名前を変更するのがよい方法だと思います - あとでGit側で何をするのか注意してください。これは過去にはちょっとした苦痛でしたが、内容がほとんど同じであることに気付くことができるので、実際にはGit側ではかなりシームレスであるべきだと私は聞きました。 (まったく同じではありません。通常、IMEというクラスの名前を変更するときにファイルの名前を変更する傾向があります。)

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

201
Jon Skeet

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

93
yysun

私はこれをちょっと仕事で調べました(SubversionとGitの両方とも)。 Visual Studioには、実際にサードパーティのソース管理ソリューションをVisual Studioに統合できるようにするソース管理統合APIがあります。しかし、ほとんどの人はいくつかの理由でそれを気にしません。

1つ目は、APIがロックアウトチェックアウトワークフローを使用していることを前提としていることです。実装にコストがかかるか、よりモダンな編集 - マージワークフローを使用している場合は単純にフラット化するかのいずれかの方法で、フックがたくさんあります。

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

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

53
T.E.D.

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

本当にやらなければいけないことは、共有リポジトリに置かれるべきではないものであなたの.gitignoreファイルをいっぱいにすることです。私のものは一般的に次のものを含んでいます:

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

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

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

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

  2. 問題がなければ(賢明な中間コードをコミットし、Gitに切り替え、変更をステージングして差分を確認します。明らかに間違っている場合はVisual Studioに戻って修正し、それ以外の場合はコミットします。

マージ、ブランチ、リベース、その他の手の込んだSCMのものは、PromptコマンドからGitで簡単に実行できます。プロジェクトファイルを大幅に変更した場合、プロジェクトをリロードする必要がある場合がありますが、Visual Studioは通常、その下で変化することにかなり満足しています。

私はGitの有用性が完全なIDE統合を持っていないという少しの不便よりも重要だと思いますが、それはある程度は好みの問題です。

38
CB Bailey

Microsoftは最近 Git for Visual studio 2012 (update 2)を発表した。私はまだそれで遊んでいません、しかし このビデオ は有望に見えます。

これは、Visual Studio 2012のGitの使い方の簡単な チュートリアル です。

またTortoiseGitをお見逃しなく... https://tortoisegit.org/ /

28
tonyo

Microsoftによる Git用のVisual Studio Tools があります。ただし、Visual Studio 2012(update 2)のみがサポートされています。

26

Visual Studio 2013はGitをネイティブでサポートしています。

公式発表 を参照してください。

19
rhughes

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

私は GitExtensions (またはそれよりも少ない割合で SourceTree )を好む。 _ dag _ を見るのは、Gitがどのように機能するのかを理解することが私にとって非常に重要だからです。そして、あなたはあなたのプロジェクトへの他の貢献者が何をしてきたのかをもっとよく知っています!

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

そして、例えば、GitExtensionsは興味深いプラグインと一緒にバンドルされています:バックグラウンドフェッチ、GitFlow、...そして今、 継続的インテグレーション

Visual Studio 2015 のユーザーの場合、GitHubエクステンションをインストールするとGitが形を整えます。しかし、外部ツールはまだ優れています;-)

18
Philippe

Git Extensions の最新リリースは Visual Studio 2010 now( Visual Studio 2008 および Visual Studio 2005 とともに)。

私はそれがVisual Studio 2008で使用するのがかなり簡単であるとわかりました、そして、インターフェースはVisual Studio 2010で同じであるようです。

15

TortoiseGit は成熟しており、TortoiseSVNを使用したことがある場合は特にお勧めします。

15
SurfRat

実際に非常にうまく機能する最も簡単な解決策は、外部ツールとしてTortoiseGitコマンドを追加することです。

Git(TortoiseGit)ツールバーをVisual Studioに追加するための解決策

14
DalSoft

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

  1. Gitソース管理プロバイダ
  2. マイクロソフトGitプロバイダー

私は両方を試してみましたが、1番目のものがより成熟していることを知り、そしてより多くの機能を持っています。例えば、それは亀のgitとgitの拡張の両方でうまく機能し、さらにそれらの機能を公開しました。

:どちらの拡張子を使用する場合でも、Tools -> Options -> Source control -> Plugin Selectionから有効にして有効にしてください。

10
Tarun
10
TTT

Jon Rimmerが述べたように、GitExtensionsを使うことができます。 GitExtensionsは、Visual Studio 2005およびVisual Studio 2008で機能します。手動で.Addinファイルをコピーして構成した場合は、Visual Studio 2010でも機能します。

10
Henk