Visual Studio 2015에서 자식 매핑 제거


157

이 질문은 git 자체와 는 아무런 관련없습니다 . 오히려 Visual Studio 2015 (VS2015)가 이전에 본 git 저장소에 대한 바인딩 / 매핑을 제거하는 것과 관련이 있습니다.

다음은 문제의 스크린 샷입니다. 제거 버튼이 회색으로 표시됩니다

제거 버튼이 회색으로 표시됩니다 (비활성화 됨). "로컬 Git 리포지토리"목록에서이 항목을 제거하려면 어떻게해야합니까?


현재 게시되지 않은 NoGit 릴리스를 사용하면 쉽습니다. stackoverflow.com/a/33789257/2284031
Ben Wilde

새로운 솔루션을 추가 할 때 "git repository에 추가"는 작은 오른쪽 하단에서 확인되지 않습니다
Iman

1
아래 답변 중 어느 것도 나를 위해 작동하지 않습니다. 방금 해결 방법을 사용했습니다 .Studio를 닫고 .git 폴더의 이름을 .git1로 바꾸고 Studio를 열고 git 폴더의 이름을 .git으로 바꾸십시오. Windows에서 점으로 시작하는 폴더 이름을 지정하려면 이름 끝에 ".git1"이라는 추가 점을 추가해야합니다.
bruha

답변:


210

해결책은 그것보다 훨씬 간단합니다. UNC 경로 프로젝트에서 3 개의 파일을 제거하면됩니다.

솔루션의 UNC 경로로 이동하십시오.

예 : C : \ Users \ 사용자 이름 \ Documents \ Visual Studio 2015 \ Projects \ 프로젝트 폴더

그런 다음 .git*파일과 폴더를 영구적으로 삭제하십시오 ( "SHIFT + DEL") . 두 개의 파일과 하나의 폴더가 숨겨져있을 수 있으므로 폴더 및 검색 옵션>보기> 숨김 파일, 폴더 및 드라이브 표시 (라디오 단추)가 선택되어 있는지 확인하십시오.

영구적으로 삭제할 파일은 다음과 같습니다.

.gitignore (파일)

.gitattributes (파일)

.git (폴더)

Visual Studio를 다시 열고 Git Source Control과 더 이상 관계가 없습니다. 위에서 언급 한 바와 같이 레지스트리에서 제거 할 때까지 가져 오려면 가능하지만 시스템의 "하우스 유지"와 별도로 필요하지는 않습니다.


2
+1. 내 경험상 레지스트리를 사용하는 것이 너무 잘 작동하지 않는 것 같습니다. 내 프로젝트를 다른 위치 (vm에 로컬)에 복사 한 후 .gitignore, .gitattributes 및 .git을 제거한 후이 작업을 수행했습니다.
cr1pto

42
-1 이것은 VS에서 git 매핑을 제거하지 않고 git 저장소 자체를 제거합니다. 이 단계에서 VS가 git에 매핑되지 않는 이유는 repo를 날려 버렸기 때문입니다. git을 사용하고 싶지만 VS가 참여하고 싶지 않은 사람들은 어떻습니까? 이것이 OP가 요구 한 것입니다.
Rob Levine

5
@Richard_D-기본적으로-표준 방식으로 git을 사용하는 경우이 .git 폴더 git입니다. 그것은 업스트림 git 서버에있는 모든 것의 로컬 사본이며 아마도 생성했지만 푸시하지 않은 로컬 분기의 유일한 사본 일 것입니다. 많은 사람들이 명령 줄에서 git 또는 SourceTree와 같은 도구를 사용하고 VS에서 git 통합을 사용하고 싶지 않습니다. 이 경우 우리가 원하는 것은 실제로 로컬 git 설치를 변경하지 않고 VS에서 git 지원을 비활성화하는 것입니다. 더 이해가 되나요, 아니면 당신의 걱정을 오해 했습니까?
Rob Levine

4
이것은 끔찍한 생각입니다. 비판적 태만도 떠 오릅니다. 안전 벨트 패배자들도 있습니다. 이것은 매핑을 제거하지 않고 저장소 자체를 삭제합니다.
Panagiotis Kanavos

2
제 경우에는 완벽하게 작동했습니다. 실수로 소스 제어에 프로젝트를 추가하려고 시도했지만 GIT 저장소에 로컬로 배치하는 방법이있었습니다. 이것은 드라이브가 충돌하면 모든 것을 잃기 때문에 소스 제어의 목적을 소멸시킵니다. TFS에 연결하려고 시도했지만 기본값은 GIT로 다시 설정되었습니다. 모든 GIT 파일을 제거하고 VS를 다시 열면 완벽하게 작동했습니다. +! 친절한 선생님!
logixologist

59

도구-> 옵션-> 소스 제어-> 현재 소스 제어 플러그인 : 없음


4
이것은 실제 답변입니다-필자의 경우 버전 제어를 위해 항상 Team Foundation Server를 사용하고 있습니다. Microsoft가 Git을 추진하는 것처럼 보입니다.
Alexey Shevelyov

이것은 프로젝트를 닫고 Visual Studio에서 소스 제어를 비활성화합니다. 다음에 프로젝트를 열면 git 통합이 다시 활성화됩니다.
스카이 맥 마스터

40

짧은 버전

  1. 아래의 해당 entr (y | ies)를 제거하십시오 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\GitSourceControl\Repositories.

  2. 제거 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\GitSourceControl\General\LastUsedRepository하려는 리포지토리와 동일한 경우 제거하십시오.

배경

Visual Studio가 본 모든 git 리포지토리를 추적하는 것처럼 보입니다. 저장소를 참조하는 프로젝트를 닫아도 이전 항목이 여전히 목록에 나타날 수 있습니다.

이 문제는 Visual Studio에 새로운 것이 아닙니다.

VS2013-제거 옵션이 항상 비활성화되어있을 때 팀 탐색기 창에서 로컬 자식 리포지토리를 어떻게 제거합니까?

Visual Studio 2013 솔루션에서 Git 바인딩을 제거 하시겠습니까?

이것은 모두 내장 기능이어야 할 무언가에 대한 많은 작업처럼 보입니다. 위의 "솔루션"은 .git 파일 등을 수정하는 것을 언급합니다. Visual Studio 외부 의 항목을 변경 하여 Visual Studio 내부의 항목 에 영향을 미치는 아이디어가 마음에 들지 않습니다 . 내 솔루션은 레지스트리를 약간 편집해야하지만 VS 외부에 있어야하지만 적어도 VS에만 영향을 미칩니다. 해결 방법은 다음과 같습니다 (읽기 : 핵).

자세한 지침

다음 단계를 수행하기 전에 Visual Studio 2015를 닫아야합니다.

1. regedit.exe를 열고

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\GitSourceControl\Repositories

VS의 regedit 저장소

VS가 추적하는 리포지토리를 나타내는 여러 "해시"값이 표시 될 수 있습니다.

2. 목록에서 제거하려는 자식 저장소를 찾으십시오. namepath값을 보고 삭제할 올바른 저장소를 확인하십시오.

리포지토리를 확인하여 삭제

3. 키 (및 해당 하위 키)를 삭제하십시오.

(선택 사항 : 삭제하기 전에 마우스 오른쪽 단추를 클릭하고 내보내기 를 선택 하여 실수를 한 경우이 키를 백업 할 수 있습니다.) 이제 키를 마우스 오른쪽 단추로 클릭하십시오 (제 경우에는 삭제 )를 AE76C67B6CD2C04395248BFF8EBF96C7AFA15AA9선택하십시오 .

4. LastUsedRepository키가 "다른 것"을 가리키는 지 확인하십시오 .

위 단계에서 제거하려는 리포지토리 매핑이에 저장된 LastUsedRepository경우이 키도 제거해야합니다. 먼저 다음으로 이동하십시오.

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\GitSourceControl\General

일반 키의 위치

키를 삭제합니다 LastUsedRepository(필요한 경우 키가 VS에 의해 다시 생성됨). 키 제거가 걱정되면 값을 수정하고 빈 문자열로 설정하면됩니다.

마지막으로 사용한 리포지토리 삭제

Visual Studio 2015를 다시 열면 git 저장소 바인딩이 더 이상 목록에 나타나지 않아야합니다.


나는 레지스트리를 가지고 노는 것이 좋은 생각이라고 생각하지 않습니다 ... 이것이 어떤 사람들에게 효과적이라면 내 경험상 이것이 가장 안전한 방법은 아닙니다. 훨씬 안전한 솔루션은 @helix의 답변을 참조하십시오.
cr1pto

3
@Richard_D-헬릭스의 대답은 git에 대한 VS 매핑을 제거하지 않으며 git repo 자체를 파괴합니다. 레지스트리를 해킹하는 것이 이상적이지는 않지만 적어도 실제 문제를 해결하려고 시도합니다. "git repo를 사용하고 있지만 VS가 관여하기를 원하지 않습니다"
Rob Levine

이것이 OP의 질문에 대답하지만 이것이 정답입니까? 확실하지 않습니다. @Helix의 답변에서 내 질문을 참조하십시오. 고마워 Rob, 당신의 통찰력을 주셔서 감사합니다.
cr1pto

1
VS2015는 다음에 솔루션을 열 때 이러한 레지스트리 항목을 복원합니다.
G

1
개발자는 Windows 레지스트리 편집을 두려워해서는 안됩니다. 특히 Visual Studio 키일 때 특히 그렇습니다! .git 디렉토리를 삭제하는 것은 옵션이 아닙니다.
0xF

21

Git 리포지토리 는 더 이상 활성 프로젝트가 아닌 VS-2015로컬 Git 리포지토리 목록에서 제거 할 수 있습니다 .

스크린 샷에 하나의 저장소 만 존재하며 활성화되어 있으므로 제거 할 수 없습니다.

둘 이상의 리포지토리가있는 경우 활성 리포지토리를 나타내는 리포지토리 중 하나가 BOLD에 표시됩니다. 그 때 다른 비활성 저장소는 제거 할 수 있습니다.

따라서 문제를 해결하기 위해 두 번째 로컬 리포지토리에 연결하면 스크린 샷에서 강조 표시하는 리포지토리를 제거 할 수 있습니다.

불행히도 팀 탐색기는 항상 하나의 저장소를 활성으로 유지하는 것 같습니다. 다른 저장소로 전환하지 않고 완전히 보내도록 확신시키는 방법을 모릅니다.


그러나 다른 저장소에 어떻게 "연결"합니까? VS가 저장소에 있으면 솔루션 탐색기 메뉴에서 동일한 "Sorce Control에 추가"옵션을 사용하여 다른 서버에 연결할 수 없습니다. (솔루션 디렉토리에서 .git 및 기타 git 파일을 삭제하는 NVM이 나를 위해 일했습니다.)
Gram

@그램. 로컬 Git 리포지토리 (OP 스크린 샷 참조)에서 '새'Git 리포지토리를 만들거나 기존 저장소를 '복제'할 수 있습니다. 새 자식 저장소를 생성하는 경우 로컬 하드 드라이브에 경로를 지정한 다음 생성을 클릭하십시오. 그 후에 목록에 나타납니다. 새 저장소를 두 번 클릭하면 굵은 텍스트로 강조 표시되고 장면 뒤에서 활성 저장소가됩니다. 이때 목록에서 다른 리포지토리를 제거 할 수 있습니다.
Chris C.

기존 프로젝트를 기존 github 저장소에 연결하지 않고 새로운 로컬 저장소를 만들고 있습니다. 죄송합니다. 두 번째로 읽으면 제거가 유일한 질문입니다. 기존에 연결하는 방법은 질문의 일부가 아닙니다.
Gram

18

.git hidden 폴더를 제거하면 효과가있었습니다.


이것은 폴더를 git checkout에서 폴더로 변환합니다. Visual Studio 가이 작업을 수행하기 때문에 체크 아웃 디렉토리의 목적을 변경해서는 안됩니다.
Cristian Amarie

슈퍼 늦게,하지만 당신은 너무 많은 ...이 ... 바보 같은 기능들은 핸들이에 내장 된 것을 가장 실망과 지금까지 내 전체 경력의 짜증나는 아침, 중 하나가 될했다 감사합니다
haag1

11

위의 답변은 저에게 효과적이지 않았습니다. Visual Studio에서 솔루션을 열면 레지스트리 항목이 자동으로 다시 추가됩니다. 나는 Matthews 답변의 링크 중 하나에서 해결책을 찾았으므로 신용은 여전히 ​​정답을 얻습니다.

Visual Studio 2013 솔루션에서 Git 바인딩을 제거 하시겠습니까?

.git솔루션 폴더에서 숨겨진 폴더를 제거하십시오 .

또한 폴더를 깨끗하게 유지하기 위해 .gitattributes.gitignore파일을 제거했습니다 .


2
팀 탐색기가 아닌 git에서 프로젝트를 관리하려는 경우에는 유용하지 않습니다. 개인적으로 Team Explorer가 다른 VS 플러그인을 통해 Git을 사용하는 것을 망쳤습니다.
Henry Wilson

이것은 VS에서 git add-in을 제거하지 않습니다. VS는 계속해서 Git 부시를 이기고 악화되고 있습니다.
IAbstract

@IAbstract 질문은 VS에서 git add-in을 제거하도록 요구하지 않습니다.
유전자 S

@ 헨리 윌슨 당신이 의견이 질문과 관련이있는 것 같지 않습니다. 내 대답은 Visual Studio에서 바인딩 / 매핑을 제거합니다. 그것은 나를 위해 일하고 다른 사람들을 위해 분명히 일합니다.
유전자 S

1
그것은 전적으로 질문과 관련이 있습니다! OP는 소스 제어에 git을 사용하는지 여부를 나타내지 않고 VS에서 바인딩을 제거하는 방법을 알고 싶어합니다. .git 폴더와 .gitattributes / .gitignore 파일을 삭제하면 실제로 소스 제어에 git을 사용하지 않는다고 가정합니다.
Henry Wilson

9

NoGit 확장 프로그램은 솔루션이로드 될 때마다 Git 소스 제어 제공자를 해제하여 문제를 숨 깁니다. Visual Studio에로드 된 모든 솔루션에 대해이 작업을 수행합니다.

Chris C.가 제안한 것처럼 다른 프로젝트를 열고 로컬 Git 리포지토리에서 Git 리포지토리를 제거하여 해결했습니다 (보기> 팀 탐색기> 로컬 Git 리포지토리, 제거해야 할 리포지토리를 선택하고 제거를 클릭하십시오). 그런 다음 나선에서 제안한대로 프로젝트 경로에서 .git 폴더를 제거했습니다. 프로젝트를 다시 열고 마침내 Git 통합이 사라졌습니다!


솔루션 폴더에서 .git 폴더와 몇 개의 .git 파일을 제거하면 해결되었습니다. 모두 감사합니다!
PTansey

8
  1. 프로젝트 디렉토리로 이동
  2. 폴더 메뉴-> 도구-> 폴더 옵션을 클릭하십시오.
  3. 보기 탭을 선택 하십시오
  4. 파일 및 폴더에서 숨김 파일, 폴더 및 드라이브 표시를 선택하십시오.
  5. 확인을 클릭하십시오
  6. .git폴더 삭제
  7. Visual Studio를 닫았다가 다시 엽니 다
  8. 프로젝트를여십시오
  9. 끝난. :)

안전한 코딩.


1
그것은 우리가하려는 것이 아닙니다. 우리는 자식을 원하고, 자식과 VS의 통합을 원하지 않습니다.
Gerry

7

너무 간단합니다

  1. 삭제하려는 프로젝트에 연결되어 있지 않은지 확인하십시오

  2. 솔루션 탐색기에서 프로젝트가 닫힙니다.

    그게 다야, 지금 재 시도하면 제거 작업이 활성화됩니다.


감사. 이것이 가장 간단하며 답으로 선택해야합니다.
로널드 라모스

작동하지만 제거 옵션이 계속 비활성화되어 있으면 Visual Studio를 닫았다가 다시 엽니 다. VS 2017에서 사용했습니다
freedeveloper

5

Visual Studio 2015 프로젝트에서 git 통합을 제거하는 데 시간을 보냈습니다. Visual Studio에서 git을 제거하고 도구-> 옵션-> sourceControl-> 플러그인 선택-> Visual Studio Team Foundation 서버를 따라 TFS를 추가 할 때마다 돌아 왔습니다.

내 해결책은-

내 프로젝트의 실제 위치 만들기-모든 숨겨진 파일을 표시하십시오. 당신은 윈도우의 숨겨진 파일과 폴더 옵션을 표시 하여이 작업을 수행 할 수 있습니다. 그런 다음 .git라는 숨겨진 폴더가 있다는 것을 알고 있습니다. 내 프로젝트 폴더와 git 폴더의 전체 백업을 필요한 다른 백업으로 유지했습니다 (프로젝트가 중단되는 경우이 백업을 유지하여 이전 상태로 돌아갈 수 있음).

그런 다음 숨겨진 .git 폴더와 다른 .git 관련 파일을 삭제했습니다.

그런 다음 도구-> 옵션-> sourceControl-> 플러그인 선택-> Visual Studio Team Foundation 서버를 사용해보십시오. 그런 다음 Visual Studio- 파일-> 열기-> 프로젝트 / 솔루션으로 프로젝트를 엽니 다.

그 후 솔루션 탐색기에서 시작한 후 솔루션 이름을 마우스 오른쪽 버튼으로 클릭하고 "소스 제어"옵션을 참조하고 프로젝트를 마우스 오른쪽 버튼으로 클릭하면 "소스 컨트롤에 soution 추가"가 표시됩니다. 이번에는 git에 솔루션을 추가하지 않았습니다. .

또한 소스 컨트롤 탐색기에서 git 연결을 제거하는 것이 좋습니다.

그래서 중요한 것은 프로젝트 파일에 숨겨진 git 파일과 다른 git 확장자가 없는지 확인하는 것입니다. 누군가에게 도움이되기를 바랍니다.


2

Juliano Nunes Silva Oliveira의 답변 외에도 regedit를 해킹하거나 숨겨진 .git 폴더를 제거하거나 VS15 설정을 변경하지 않고 가장 간단하고 깨끗한 방법은 다른 저장소에 연결하는 것입니다. 연결되면 다른 저장소의 텍스트가 굵게 표시된 다음 Git 로컬 저장소 를 선택하십시오 . 이제는

없애다

메뉴 항목이 활성화되어 Git 로컬 저장소 를 삭제할 수 있습니다 .

Visual Studio 2015에서 Git을 사용할 때 지점을 처리 할 때와 같은 유형의 동작 입니다. 삭제하려는 지점을 삭제하려면 먼저 다른 지점을 선택해야합니다.

시각화가 필요한 사람들에게는 더 잘 이해할 수 있습니다. 링크 이미지를 참조하십시오 어떻게하는지

행복한 코딩


1

솔루션 폴더에 .git 디렉토리가 있는지 찾습니다. 숨겨진 폴더를 삭제하면 Visual Studio는 더 이상 git 프로젝트로 간주하지 않습니다.


제거하면 더 이상 git project가 아니기 때문 입니다. 버전 관리를 효과적으로 파괴했습니다. 그것이 당신이하고 싶은 일이라면 좋습니다.
gliljas

바로 내가하고 싶은 일입니다. Visual Studio는 소스 제어에 라이센스를 추가하면서 30 일 라이센스를 만료하기로 결정했습니다. 혼란스러운 상태로 프로젝트를 떠났고 설명서를 따라갈 수 없었습니다.
Nathan Goings

1

다른 저장소에 연결 한 후 (TFS 저장소로 시도한 후) 연결 관리로 이동하여 Git 저장소를 마우스 오른쪽 단추로 클릭하면 제거 할 수 있습니다.

그러나 솔루션을 다시 열기 전에 프로젝트 경로에서 .git 폴더와 파일을 수동으로 제거해야합니다.


1

@Matthew Kraus 메뉴 표시 줄에서 도구를 클릭 한 다음 옵션을 클릭하고 소스 컨트롤을 찾은 다음 드롭 다운 목록에서 "없음"을 선택하고 확인을 클릭하십시오. 프로젝트 폴더에서 숨겨진 .git 폴더를 삭제하십시오. 프로젝트를 다시여십시오. 여기에 이미지 설명을 입력하십시오


0

이동 Control Panel\User Accounts\Credential Manager및 선택 Windows Credential후 자식의 계정을 제거합니다.



0

로컬 git 저장소가 이미 연결되어 있으면 삭제할 수 없습니다. 솔루션을 닫고 다른 솔루션을 연 다음 로컬 자식 저장소를 제거하십시오. .git 숨겨진 폴더 를 삭제하는 것을 잊지 마십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.