Частично сценические файлы с Visual Studio

Есть ли способ просто разместить фрагменты кода в файле вместо всего файла?

Просто интересно, возможно ли это.

Использование Visual Studio 2015, TFS 2015 (Git).

5 ответов

Решение

Нет, ни Visual Studio 2015, ни 2017 не поддерживают этапы подготовки (частичные файлы). Вам нужно будет использовать другой клиент для постановки и фиксации этих частичных изменений.

Это функция клиента, поэтому используйте либо командную строку, либо сторонний клиент, такой как Tower или SourceTree.

@tomossius попросил привести пример частичной обработки файла с помощью инструментов командной строки с помощью интерактивной команды git add. Там может быть более элегантный способ, но я так и делаю.

Руководство по Git - Интерактивная постановка

Тем не менее, я рассмотрю простой случай.

Команда будет

git add -i stagepartialfile.cs

тогда вам предложат меню

           staged     unstaged path
  1:    unchanged      +30/-30 stagepartialfile.cs

*** Commands ***
  1: status       2: update       3: revert       4: add untracked
  5: patch        6: diff         7: quit         8: help
What now>

Отсюда вы бы выбрали 5 или p для патча.

What now> 5
           staged     unstaged path
  1:    unchanged      +30/-30 stagepartialfile.cs
Patch update>>

Git предлагает вам выбрать файлы, в которые вы хотите установить патч. В этом случае мы вводим 1, чтобы выбрать файл, который мы указали.

Patch update>> 1
           staged     unstaged path
* 1:    unchanged      +30/-30 stagepartialfile.cs
Patch update>>

С *, указывающим, что этот файл выбран, мы можем просто нажать Enter, чтобы начать процесс исправления.

На этом этапе вам будет предложено этап каждого отдельного куска.

diff --git a/stagepartialfile.cs b/stagepartialfile.cs
index ea97bc6..d55218c 100644
--- a/stagepartialfile.cs
+++ b/stagepartialfile.cs
@@ -1,4 +1,5 @@
using System;
+using System.Configuration;
using System.Collections.Generic;
using System.Diagnostics;
using System.Net;
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? 

Нажимая на? мы можем получить список команд

y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help

Отсюда вы можете выбрать, какие чанки ставить, используя y или n или s, чтобы разбить их на более мелкие чанки.

После этого вы увидите файл в Visual Studio в промежуточной области и в неподготовленной области. Изменения, которые вы сделали, будут в этом файле, а те, что вы сказали "нет", будут в неподготовленной области.

У GitTools нет лучшего Gui, но лучше, чем ничего. В расширенном режиме (флажок над списком файлов) вы можете ставить или сбрасывать выбранные строки. https://marketplace.visualstudio.com/items?itemName=yysun.GitTools

Дерево исходного кода можно использовать для частичного размещения в файлах. Все изменения будут отражены в дереве исходного кода, если вы сделаете коммит из Visual Studio с помощью team explorer.

Не связано с промежуточной подготовкой, но теперь вы также можете отменить промежуточную обработку выбранных строк с помощью Visual Studio 2022 17.6.4.

Ссылка: https://developercommunity.visualstudio.com/t/Unstage-individual-lines-and-hunks-in-a-/10145068 .

https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes#summary-of-whats-new-in-this-release-of-visual-studio-2022-version-176

Другие вопросы по тегам