web-dev-qa-db-ja.com

Visual Studio 2015でGitから特定のバージョンを取得するにはどうすればよいですか?

Visual Studio 2015-Team Explorer/Team Services Gitで特定のバージョンのファイルを(特定のコミットから)取得する方法はありますか?

以前のバージョンのファイルを使用してソリューションを実行し、実行方法を確認してから、最新バージョンに戻って開発を継続したいだけです。

ブランチを作成しませんでした。私は「マスター」ブランチでコミットし続けました。

34
TchiYuan

Visual Studio 2015では、履歴を表示ActionsチームエクスプローラーのChangesパネルのメニュー):

View History

次に、興味のあるコミットを右クリックします。

Right Click

そこからブランチを作成できます:

New branch

Visual Studioでコミットをチェックアウトする方法がわかりません。


コマンドラインを使用して、使用するコミットSHAのチェックアウトを実行できます。

git checkout 9eab01d9

完了したら、マスターをもう一度チェックアウトします。

git checkout master

切り離されたヘッドでの作業に関する警告が表示される場合があります。その場合、 一時的にブランチを作成

git checkout -b temp-branch-name 9eab01d9

Gitコマンドラインに慣れるのは良い考えです。VisualStudioツールが登場しますが、多くの機能が欠けています。

40
DaveShaw

私の元の答えはソリューション全体を特定のコミットにリセットすることを指摘してくれたMatt Frearに感謝しますが、質問は1つのファイルの特定のバージョンを使用しながら最新のものを保持する方法でした他のすべての。誰かが便利だと思った場合に備えて、元の投稿の内容を一番下に保持します。


ソリューション全体を最新に保ちながら、個々のファイルの古いバージョンを使用するには:

Visual Studio 2015 Update 3の使用:

スクリーンショットを追加し、回答をクリーンアップ/再フォーマットしてフォローしやすくしますが、修正された回答を入手して、再訪する時間があるまでより正確に質問に対処したいと考えました。

  1. ブランチの履歴を表示(Team ExplorerBranches→ブランチを右クリック) View History on the branch
  2. 目的のコミットを右クリックして、ResetReset and Keep Changes(--mixed)を選択します。ローカルコードは引き続き最新のコミットに含まれますが、目的のコミット以降のすべての変更は、Team ExplorerChanges。ブランチポインターはリセットしたコミットにありますが、コードはまだ開始したコミット(最新のコミット)にあります。
  3. Team ExplorerChangesに移動し、目的のコミットでバージョンを使用するファイルを右クリックして、「変更を元に戻す...」。これにより、そのファイルはリセットしたコミットに戻されます-そのコミットの内容に戻ります。

これで、変更を元に戻したファイルを除き、リポジトリ内のすべてのファイルの最新のものが得られます。 Team ExplorerChangesの古いバージョンを使用している1つのファイルのみを表示するために、最新のコミットで混合をリセットできますただし、ソリューションを実行するだけであれば、この手順は不要です。


ソリューション/ソースリポジトリ全体を特定のコミットにリセットするには:

Visual Studio 2015 Update 3の使用:

[〜#〜] important [〜#〜]

このアプローチでは、発信コミットはすべて失われます。

ステップ1(発信コミットをプッシュする)を必ず実行してください

  1. 送信コミットがないことを確認してください-送信コミットがある場合はプッシュを実行してください(* Team Explorer→SyncOutgoing CommitsMake sure you don't have any outgoing commits - perform a Push, if you do have outgoing commits
  2. ブランチの履歴を表示Team ExplorerBranches→ブランチを右クリック) View History on the branch
  3. 目的のコミットを右クリックして、ResetReset and Delete Changes(--hard)を選択します。 Right-click on the desired commit and select "Reset → Reset and Delete Changes (--hard)Team ExplorerSyncで、[履歴の表示]ウィンドウで、目的のコミットから最新のコミットへの着信コミットで終了しますリモートブランチ、およびローカルコードが目的のコミットと一致します。

  4. 完了したら、プルインTeam ExplorerSyncを実行して、ローカルブランチをリモートブランチの最新のコミットに移動します。

this great answer を参照してください。これは、 'git reset'コマンドと--hardと--mixedの違いを説明しています。

20
Chris Tossing

(これはVS2015とVS2017の両方で機能します。)

これが最も簡単な方法だと思います。

  1. ソリューションエクスプローラーで、ファイルの現在のバージョンを開きます。
  2. ソリューションエクスプローラーで、ファイルを右クリックし、[履歴の表示]を選択します。
  3. 履歴ウィンドウで、テストするバージョンのコミットを見つけます。それを右クリックして、「開く」を選択します。これにより、目的のバージョンの内容を含む一時ファイルがポップアップ表示されます。
  4. そのバージョンの内容をコピーし(Ctrl-A Ctrl-C)、実際の現在のバージョンに貼り付けます。

これで、そのファイルでやりたいことが何でもでき、完了したら保留中の変更を元に戻すことができます。

4
TTT