Частично сценические файлы с 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 .