Форум программистов, компьютерный форум, киберфорум
Git
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121

GitHub Desktop и Visual Studio. Не удаляются папки с проектами при изменении ветки

29.10.2018, 20:31. Показов 2391. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как работать с GitHub Desktop (далее - GHD) и Visual Studio? В частности столкнулся с одной проблемой. Вот, создал я в VS создал новый проект и вместе с ним новое решение (Solution, уж не знаю как правильно это перевести). Хорошо, создаю в GHD новый локальный репозиторий, в одной папке с файлом .sln. Добавил в .gitignore исключения для бинарников внутри папки с проектом и закоммитил существующие файлы. Хорошо. Допустим, в рамках этого солюшена я хочу добавить в VS новый проект. Создаю в GHD новую ветку, добавляю в VS новый проект, добавляю исключения для бинарников второго проекта, коммичу изменения. Отлично, новый проект в новой ветке создан. Хочу перейти в ветку master, перехожу и что я вижу? В VS не удалился проект, который был создан в новой ветке, да и сама папка с проектом из репозитория так же не удалилась. Я уже полдня с этой проблемой пытаюсь разобраться, уже руки опускаются, что я делаю не так? Почему директории ни в VS ни в GHD не удаляются?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.10.2018, 20:31
Ответы с готовыми решениями:

В Visual studio при изменении текста на кнопке изменнения не вступают в силу
Работая с Windows Form попытался изменить название кнопки в коде программы и впервый раз при запуске оно изменяется, а вот в последующие...

Visual Studio: solution c несколькими проектами
Добрый вечер! Вопрос от начинающего.. по VS2012 Есть solution, который содержит 2 проекта (буду называть их А и Б). При этом...

Visual studio with github
Ребят, возникла проблема с github для visualstudio. При попытке синхронизировать ветку выдаёт ошибку: Не удалось отправить в удаленный...

8
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,299
Записей в блоге: 14
29.10.2018, 21:04
А файлы-то удаляются?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
29.10.2018, 21:08
А из самой VS без использования GHD работает? Там есть аналогичная функциональность для работы с git...
0
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,299
Записей в блоге: 14
29.10.2018, 21:16
Insomnia4ever,
  • Если на диске файлы удаляются, а каталоги нет, это нормально
    • Возможно, у студии там были процессы с Current Directory;
    • Также возможно, что остались именно исключённые каталоги (игнорируемые), их удалением Git не занимается;
  • В решении проект не исчезает с переключением веток тогда, когда файл решения не был зафиксирован в коммитах. Бывает что вроде всё сохранишь, а *.sln - не сохранился. И закоммитил без него.
  • Приучитесь сначала консольным Git пользоваться. Там проблемы нагляднее, как ни странно.
0
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121
29.10.2018, 22:07  [ТС]
Someone007, пока не пробовал внутренний функционал VS для Git'а.

Rius, кхм и как же всё-таки сделать так, чтобы при переключении веток от проектов, которые не должны там находиться не оставалось и следа? Это как минимум может ввести в ступор, я думаю. Вот смотрите, до этого я сам создавал .gitignore файл, сейчас воспользовался шаблоном, который предоставляет GitHub. Может быть в этот раз я более понятно опишу, что происходит.

Создаю новое решение с проектом (при этом убираю галку с "create new Git repository"), потом создаю репозиторий для решения в GHD с параметром gitignore "Visual Studio". На этом этапе существующие файлы в решении уже автоматически закоммичены. После этого создаю новую ветку, создаю в решении новый проект, коммичу добавление новых файлов в решении и переключаюсь в master-ветку. Теперь внутри Solution Explorer в VS новый проект отсутствует, однако в директории с решением всё ещё есть папка с новым проектом. Вот как с этим можно бороться? Причём, если создавать новое решение и ставить галку напротив "create new Git repository", то при проведении аналогичных действий и переключения на master-ветку и в Solution Explorer остаётся второй проект, хоть и без основных файлов с кодом.
0
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,299
Записей в блоге: 14
29.10.2018, 22:12
Никак не бороться. Оставление нетронутыми неподконтрольных файлов и каталогов - нормальное поведение.

В проектах VS есть неочевидные настройки, позволяющие разнести файлы исходников, временные файлы, и результаты в разные каталоги. В этом случае, при переключении веток, в каталогах исходников ничего лишнего не останется.
0
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121
29.10.2018, 22:22  [ТС]
Rius, можете подсказать, что это за настройки или в какую сторону копать?
0
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,299
Записей в блоге: 14
29.10.2018, 22:29
Лучший ответ Сообщение было отмечено Insomnia4ever как решение

Решение

Вот самый обычный файл проекта csproj:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{9E85DCF1-24A6-4FE6-AA67-330A595661B5}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <RootNamespace>ConsoleApp1</RootNamespace>
    <AssemblyName>ConsoleApp1</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include ......................
Вот мой:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{07FCDCB0-67E2-40C9-BCD3-94386186709F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MyApp.Types.SerialPorts</RootNamespace>
    <AssemblyName>MyApp.Types.SerialPorts</AssemblyName>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OutputPath>..\_OutputFiles\$(Configuration)\Types\SerialComm\</OutputPath>
    <BaseIntermediateOutputPath>..\_IntermediateFiles\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>none</DebugType>
    <Optimize>true</Optimize>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Management" />
.................
Обратите внимание, где есть, а где нет, ноды OutputPath и BaseIntermediateOutputPath, и как они отличаются.

Добавлено через 2 минуты
Да, ещё не очевидная вещь: Git не занимается пустыми каталогами. Поэтому если в каталоге совсем ничего нет, то его под контроль не поместить, и не восстановить при переключении веток, соответственно.
1
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121
29.10.2018, 23:48  [ТС]
Rius, спасибо. Буду разбираться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2018, 23:48
Помогаю со студенческими работами здесь

GitHub Visual Studio
Привет! Создал на сайте GitHub репозиторий, в Visual Studio в расширении для GitHub привязал локальный репозиторий к удаленному. Вроде все...

Установка Visual Studio или аналогов для работы с vb.net проектами под Linux
Возможно ли так писать? Или только под виндой можно писать на .NET?

Добавление ссылки на github проект в Visual Studio 2015
есть репозиторий https://github.com/zawodskoj/GoddamnConsole как подключить к проекту

Visual studio 2013 for desktop. Версия без установки
Есть ли версия без установки, которую просто из архива запустил и пишешь коды как будто запустил установленную?

Не запускается Visual Studio 2013 Express Desktop for Windows
Доброго времени суток. После веб установки VS при попытке запустить программу вылазит ошибка как на скриншоте ниже. Попытка переустановки,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru