Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Следуйте этим рекомендациям, чтобы получить наилучшие результаты от модернизации GitHub Copilot при обновлении проектов .NET.
Перед началом работы
Подготовьте проекты перед началом обновления, чтобы получить наилучшие результаты.
Убедитесь, что сборки и тесты решения проходят
Агент проверяет изменения, внесенные путем выполнения сборок и тестов. Если ваше решение уже неисправно перед началом работы, агент не может отличить существующие сбои от проблем, которые он внёс.
Задокументируйте все известные сбои тестов в scenario-instructions.md, чтобы агент знал их игнорировать.
Фиксация или скрытие незафиксированных работ
Начните с пустого рабочего каталога, чтобы избежать смешивания ваших незафиксированных изменений с изменениями агента. Чистый базовый план упрощает проверку или восстановление изменений.
git stash
git status
Резервное копирование репозиториев, отличных от Git
Агент также работает с папками, которые не находятся под контролем версий. Если ваш проект не находится в репозитории Git, агент пропустит операции с ветками и коммитами. В этом случае создайте резервную копию папки проекта перед началом работы, чтобы при необходимости восстановить ее.
Перед началом обновления рекомендуется инициализировать локальный репозиторий Git, даже если вы не отправляете его в поставщик облачных служб. Локальный репозиторий Git позволяет:
- Откат отдельных изменений с помощью
git revert. - Отслеживайте процесс обновления шаг за шагом в истории коммитов.
- Контролируйте, какие изменения сохранить или отменить.
- Сохраняйте исходный код в основной ветви, пока агент работает в отдельной ветви.
cd your-project-folder
git init
git add .
git commit -m "Baseline before upgrade"
Проверьте тестовое покрытие
Агент использует тесты, чтобы убедиться, что изменения не нарушают поведение. Проекты с хорошим покрытием тестов получают более высокий уровень надежности.
Подсказка
Вам не нужно 100% покрытия. Фокус на коде обновления, скорее всего, изменится, например границы API, сериализация, доступ к базе данных и проверка подлинности.
Начало с малого
Если вы впервые используете агент, выберите небольшой проект с низким уровнем риска в качестве пилотного проекта. Библиотека классов или проект служебной программы является идеальным выбором. Начав с малого, вы сможете понять рабочий процесс, укрепить уверенность и выявить проблемы, связанные с репозиторием, прежде чем переходить к основному приложению.
Во время обновления
Следуйте этим рекомендациям, пока агент работает с обновлением.
Используйте руководствующий режим для первого обновления
Агент поддерживает как управляемые, так и автоматические режимы. В управляемом режиме агент приостанавливается на ключевых точках принятия решений для просмотра и одобрения. Начните с интерактивного режима, чтобы понять, что делает агент и почему. Переключитесь в автоматический режим, когда вы освоитесь с рабочим процессом.
Внимательно просмотрите оценку
Оценка — это ваша оптимальная возможность поймать проблемы, прежде чем агент начнет вносить изменения. Искать:
- Проекты, которые агент, возможно, пропустил или неправильно идентифицировал.
- Известные вам зависимости, которые являются проблемными.
- Что-нибудь необычное о решении, которое должен знать агент.
Если вы заметили что-то, сообщите агенту в чате или добавьте информацию в scenario-instructions.md. Отредактируйте assessment.md непосредственно, чтобы добавить контекст, исправьте неправильные проекты или помечайте проблемы перед тем, как агент переходит к планированию.
Уделите достаточно времени этапу планирования
Агент создает план на основе его оценки. Прежде чем продолжить, просмотрите план:
- Имеет ли порядок смысл для базы кода?
- Существуют ли зависимости, о которых агент может не знать?
- Следует ли исключить или обрабатывать проекты по-другому?
Попросите агента изменить порядок задач, пропустить проекты или изменить его подход. Вы знаете базу кода лучше, чем агент, поэтому используйте эти знания. Измените plan.md файл непосредственно, чтобы настроить порядок задач, добавить задачи или удалить задачи.
Предостережение
Будьте осторожны при редактировании plan.md напрямую. Агент может не полностью интерпретировать ваши изменения, если изменения создают противоречивые инструкции. Например, при удалении проекта-зависимости, но с сохранением проектов, которые зависят от него.
Немедленное предоставление отзывов
Агент обучается на ваших исправлениях в течение сеанса. Если агент делает выбор, с которым вы не согласны:
- Расскажите ему сразу: "Не используйте этот шаблон, используйте X вместо этого".
- Добавьте постоянное руководство в
scenario-instructions.md, чтобы агент сохранял память на протяжении различных задач и сеансов.
Оставайтесь вовлечённым во время выполнения
Выполнение требует активного участия. Перед началом работы агента ознакомьтесь tasks.mdсо следующими сведениями:
- Имеет ли порядок задач смысл для базы кода?
- Есть ли задачи, которые вы хотите пропустить или изменить последовательность?
- Отсутствуют ли какие-либо задачи?
Попросите агента настроить список задач или изменить tasks.md непосредственно перед началом выполнения. После запуска выполнения, если агент совершит ошибку в середине задачи, сообщите об этом немедленно — он применит ваше исправление в дальнейшем.
Вы знаете базу кода лучше, чем агент, поэтому используйте эти знания на каждом этапе.
Типичные проблемы
Следите за этими распространенными проблемами, которые могут замедлить или усложнить обновление.
Крупные решения с 50+ проектами
Агент работает по проекту, поэтому большие решения занимают много времени. Будьте терпеливы и отслеживайте ход выполнения. Прежде чем взять на себя обязательства по полному решению, рассмотрите возможность начать с одного репрезентативного проекта, охватывающего весь процесс от начала до конца. Пилотный проект на ранних этапах выдает системные проблемы.
Частные веб-каналы NuGet
Для частных веб-каналов NuGet выполните проверку подлинности перед началом обновления (например, с помощью поставщика учетных данных организации или конфигурации веб-канала). Без проверки подлинности сбои при восстановлении пакетов замедляют процесс.
Пользовательские целевые объекты и импорт MSBuild
Сложные настройки сборки, такие как пользовательские .targets файлы, условные импорты или нестандартная логика сборки, могут запутать оценку и вызвать непредвиденные сбои сборки. Если у вашего решения есть эти кастомизации, укажите их в чате или в scenario-instructions.md, чтобы агент мог их учесть.
Тайм-ауты сеанса
Длительные обновления могут охватывать несколько сеансов. Агент отслеживает ход выполнения в файлах рабочего процесса (в разделе .github/upgrades/), чтобы продолжить с того места, на котором остановился. При запуске нового сеанса укажите, где вы были: "Продолжить обновление .NET 10. Я был в середине проекта Data.Access."
Эффективная совместная работа
Качество взаимодействия непосредственно влияет на качество результатов.
Будьте конкретными в определении объема
Чем более конкретным вы будете, тем лучше агент выполняет свои задачи.
| Вместо | Пробное использование |
|---|---|
| "Обновить все" | "Обновление проекта Data.Access до .NET 10" |
| Исправление сборки | Исправлена ошибка сборки в CustomerService.cs, связанной с удаленным API" |
| "Обновление элементов базы данных" | "Обновление Entity Framework 6 до EF Core в проекте репозитория" |
Поделитесь своими ограничениями
Сообщите агенту о реальных ограничениях заранее:
- "Мы не можем нарушить обратную совместимость для общедоступного API".
- "У нас крайний срок выпуска через две недели, поэтому поставьте веб-проекты в приоритет."
- "Устаревший модуль отчетов должен быть исключен из этого обновления".
Объяснить архитектуру
Агент анализирует структуру кода, но не знает ментальную модель вашей команды. Помогите агенту понять:
- "Project A является нашей общей библиотекой. B, C и D все зависят от него".
- "Проект WebApi — это наш общедоступный API; Internal.Api предназначен только для внутренних служб".
- "Проект "Модели" создается автоматически из спецификации OpenAPI. Не изменяйте его напрямую".
Спросите, почему
Агент может объяснить своё обоснование. Если решение не выглядит правильно, попросите:
- "Почему вы выбрали нижний порядок?"
- "Почему вы обновляете этот пакет до версии X вместо Y?"
- "Почему вы разбили это на подзадачи?"
Понимание причин помогает вам получить лучшие отзывы.
Раннее сохранение параметров
Если у вас есть строгие предпочтения по стилю кодирования, шаблонам или подходам, добавьте их scenario-instructions.md во время первой сессии. Этот файл сохраняется в сеансах и всегда находится в контексте агента, что делает его наиболее надежным способом влияния на поведение.
Восстановление после проблем
Используйте эти стратегии, когда обновление не выполняется должным образом.
Сбои компиляции после выполнения задачи
Сообщите агенту: "Сборка проваливается после последнего задания". Агент анализирует ошибку и пытается устранить ее. Если агент не может устранить проблему:
- Предоставьте исправление вручную и сообщите агенту о том, что вы сделали. Агент учится на ваших исправлениях.
- Верните коммит (
git revertили сбросьте до предыдущего коммита) и попросите агента попробовать другой подход. - Пропустите проблемную задачу и вернитесь к ней позже.
Выбрана неправильная стратегия
Если общая стратегия агента не работает для вашей кодовой базы, перезапустите этап планирования:
- "Давайте повторим план. Я хочу сначала обновить веб-проекты, а не подходить к этому постепенно снизу вверх.
- "Измените стратегию обновления всех общих библиотек в одном пакете".
Агент застрял в цикле
Если агент повторяет то же исправление без хода выполнения, нажмите "Остановить" и опишите, что вы наблюдаете, или остановите сеанс вручную. Агент может сбросить свой подход и попробовать что-то другое.
Отмена всех изменений
Если вы использовали ветвь Git для обновления, отмените все, переключившись на исходную ветвь:
git checkout your-original-branch
git branch -D upgrade-branch
Ваш оригинальный код не изменён. Если вы работаете без системы управления версиями, восстановите резервную копию, которую вы сделали перед началом работы.
Безопасность и конфиденциальность
- Код фрагментов: GitHub Copilot обрабатывает эти данные в соответствии с политикой конфиденциальности GitHub Copilot и не сохраняет их за пределами немедленного сеанса.
-
Файлы рабочего процесса (
scenario-instructions.mdпользовательские задачи, предпочтения) остаются в репозитории.github/upgrades/. GitHub не передаёт эти файлы во внешние службы. -
Папка
.github/upgrades/является частью репозитория. Зафиксируйте папку, так как она содержит ход обновления и состояние. Агенту требуется папка для возобновления работы между сеансами. Его можно удалить после завершения обновления. - Телеметрия: Отключите через параметры телеметрии вашей интегрированной среды разработки.
Советы по производительности
- Закройте ненужные файлы и вкладки: агент анализирует активную рабочую область и меньше открытых файлов означает меньший шум.
- Этапы обновления для очень крупных решений: вместо того чтобы обновлять все проекты разом, разбивайте их на группы. Например, сначала обновите все библиотеки, а затем все веб-проекты, а затем тесты.
- Используйте кэширование сборки: агент выполняет множество добавочных сборок во время проверки. Теплые кэши сборки значительно упрощают проверку. Избегайте очистки выходных данных сборки между задачами.