Visual Studio에서 Git 사용하기


1455

오랜 Visual SourceSafe 사용자 (및 증오)로서 저는 동료와 SVN 으로 전환하는 것에 대해 논의했습니다 . 그는 대신 Git 사용을 제안했다 . 분명히 중앙 서버없이 피어 투 피어로 사용할 수 있기 때문에 (우리는 3 개발자 팀입니다).

그래도 Git을 Visual Studio와 통합하는 도구에 대해서는 아무것도 찾을 수 없었습니다. 그런 것이 있습니까?

Visual Studio에서 Git을 사용할 수있는 기술은 무엇입니까? 시작하기 전에 차이점이 무엇인지 알아야합니까?


4
방금 VS 2010 용 Git Source Control Provider를 추가 했으므로 여전히 작동합니다.
Wade73

3
VS 팀 에서이 튜토리얼을 확인하십시오 . 다음 업데이트; VS 2012에 대한 업데이트 2는 현재 어느 날에 나옵니다. VS2012 용 CTP (커뮤니티 기술 미리보기)는 여기 에서 다운로드 할 수도 있습니다 . 또는 CMMI, Agile, Scrum 1/2 등을 사용하는 경우 무료 계정 (퍼블릭 또는 프라이빗 클라우드 인스턴스)에 가입하고 웹 기반 TFS tfs.visualstudio의
애니

3
나는 2 년 동안 Visual Studio와 git을 사용해 왔습니다. 이 문제에 대한 가장 좋은 해결책은 Atlassians SourceTree와 같은 별도의 소스 제어 응용 프로그램을 사용하는 것입니다. 무료이며 설치가 쉽고 GUI가 좋으며 사용자 친화적이며 Chrome에서 웹을 탐색하는 것처럼 여러 저장소 (일명 다른 프로젝트)를 탐색 할 수 있으며 가장 중요한 것은 다중 소스 제어 시스템을 지원합니다. 시도 해봐! 당신은 실망하지 않을 것입니다, 나는 당신을 확신합니다!
Fazi

2
Git은 Visual Studio 2013부터 기본적으로 지원 됩니다
rustyx

17
나는 1342 명이 어떻게이 질문에 찬성했고 어떤 바보가 와서 그것을 닫는지를 좋아합니다. 좋은 결과 StackOverfolow .... 너무 많은 사람들이 그렇게 도움이된다고 생각한다면 SO의 기준에 맞지 않으면 무엇이 중요합니까. 이 웹 사이트의 요점이 도움이되지 않습니까?
thebunnyrules

답변:


1070

2013 년 1 월 Microsoft 모든 ALM 제품에 완전한 Git 지원을 추가 한다고 발표 했습니다. 그들은 Git 소스 제어 통합을 추가하는 Visual Studio 2012 용 플러그인게시했습니다 .

또는 Visual Studio 2005, 2008, 2010 및 2012 용 추가 기능과 Windows 탐색기 통합을 포함하는 Git Extensions 라는 프로젝트 가 있습니다. 정기적으로 업데이트되어 몇 가지 프로젝트에서 사용했는데 매우 유용합니다.

또 다른 옵션은 Git Source Control Provider 입니다.


9
ted.dennison :이 페이지 ( code.google.com/p/gitextensions ) 에 따르면 VS 2005/2008 플러그인입니다.
Jonas

10
직접 수정하려면 소스가 Github에서 호스팅되지만 MSI는 그렇지 않습니다.
Chris S

5
git 확장을 설치했는데 "by"Visual Studio에서 작동하며 완전히 통합되지 않았습니다. 솔루션 탐색기에서 체크인을 체크 아웃 할 수있는 솔루션이 있습니까?
Dani

4
Dani, 누군가 VS에 대한 Git 소스 제어 제공 업체에서 약간 더 깊은 통합 수준을 제공하는 것 같습니다 : gitscc.codeplex.com
Jon Rimmer

3
VS 2012에 대한 옵션이 있습니까?
어스 엔진

202

프로토콜 버퍼 포트를 C #으로 사용하기 위해 Visual Studio에서 Git을 사용합니다. GUI를 사용하지 않고 Visual Studio뿐만 아니라 명령 줄을 열어 둡니다.

대부분의 경우 문제가 없습니다. 유일한 문제는 파일 이름을 바꾸려는 경우입니다. 힘내 및 Visual Studio 둘 것 아닌 것을 그들은 이름을 변경하는 일이었다. Visual Studio에서 이름을 바꾸는 것이 좋은 방법이라고 생각합니다. 나중에 Git 측에서 수행하는 작업에주의하십시오. 과거에는 약간의 고통이 있었지만 내용이 거의 동일하다는 것을 알 수 있기 때문에 실제로 Git 측에서 원활하게 작동해야한다고 들었습니다. (전적으로 동일하지는 않습니다. 일반적으로 클래스 이름을 바꿀 때 파일 이름을 바꾸는 경향이 있습니다 (IME).)

그러나 기본적으로-예, 잘 작동합니다. 나는 Git 초보자이지만 필요한 모든 것을 할 수 있습니다. bin 및 obj 및 * .user에 대한 git ignore 파일이 있는지 확인하십시오.


35
git은 VS의 이름을 바꾸면 괜찮습니다. git log에서 좋은 이름 변경 추적을 위해서는 'add'부분과 동일한 커밋에서 변경의 '제거'부분을 준비해야합니다. git add -A를 사용하면 .gitignore가 최신 상태이면 쉽게 사용할 수 있습니다.
CB Bailey 14

40
나는 git 초보자이기도 하며 명령 줄에서 사용하는 것을 선호 한다는 사실을 알려줍니다 . 나는 "영리한"것과 나의 등 뒤에 "매직"을 시도하는 GUI에 대한 자식 힘을 처리하는 것이 약간 무서울 것입니다.
hasen

1
충고 감사합니다. 방금 git (및 github)으로 옮겼으며 결코 뒤돌아 보지 않을 것입니다. 내 고객은 perforce를 사용합니다 (ugh!). 그래서 내 계획은 perforce에서 한 번 체크 아웃하고 git으로 작업 한 다음 다시 체크인하는 것입니다.
Mark Beckwith

7
@ CallMeLaNN : Git 초보자에게 명령 줄을 사용할 때 어려움을 겪고 있다고 가정합니다. 2009 년 4 월의 hasan j의 의견을보십시오.
Jon Skeet

나는 보통 .user, * .suo, bin, obj,를 추가합니다. _ *를 무시 목록에 추가합니다. 위의 항목 중 하나가 추가되어 있으면 수동으로 추가 할 수 있습니다.
Tracker1

93

Git Source Control Provider 는 Git을 Visual Studio와 통합하는 새로운 플러그인입니다.


2005 년에 작동 할 가능성이 있습니까?
Art

3
잘. TBH 그래픽 인터페이스는 VS 2010에서 git 용 GUI를 검색했을 때 찾고 있던 것입니다. 이것을 게시 해 주셔서 감사합니다. 다른 답변은 내가 필요한 것이 아닙니다. VisualSVN에 비해 열악합니다.
JDPeckham

1
설치하기 전에 marketplace.visualstudio.com/… 에서 리뷰 섹션을 보는 것이 좋습니다 .
QMaster

53

나는이 작업을 조금 살펴 보았습니다 (Subversion 및 Git 모두). Visual Studio에는 실제로 타사 소스 제어 솔루션을 Visual Studio에 통합 할 수있는 소스 제어 통합 API가 있습니다. 그러나 대부분의 사람들은 몇 가지 이유로 귀찮게하지 않습니다.

첫 번째는 API가 잠금 체크 아웃 워크 플로우를 사용한다고 가정한다는 것입니다. 최신 편집 병합 워크 플로를 사용하는 경우 구현하는 데 비용이 많이 들거나 플랫 아웃이 의미가없는 후크가 많이 있습니다.

두 번째 (관련)는 Subversion과 Git이 권장하는 편집 병합 워크 플로를 사용할 때 Visual Studio 통합이 실제로 필요 하지 않다는 것 입니다. SourceSafe와 Visual Studio의 통합에 대한 주요 킬러는 사용자 (및 편집자)가 소유하고있는 파일, 편집하기 전에 체크 아웃해야하는 파일 및 원하는 경우에도 체크 아웃 할 수없는 파일을 한눈에 알 수 있다는 것입니다. 그런 다음 파일을 편집 할 때 수행해야하는 수정 제어 부두를 수행하는 데 도움이됩니다. 그중 어느 것도 전형적인 Git 워크 플로우의 일부가 아닙니다.

Git (또는 일반적으로 SVN)을 사용하는 경우 개정 제어 상호 작용은 모두 개발 세션 전이나 후에 수행됩니다 (한 번 작동하고 테스트 한 후에). 그 시점에서 다른 도구를 사용하는 것은 그리 큰 어려움이 아닙니다. 끊임없이 앞뒤로 전환 할 필요는 없습니다.


22
파일 / 디렉토리를 옮기거나 이름을 바꾸지 않습니까? 몇 달 전에 VisualSVN을 사용하기 시작했으며 다시는 돌아갈 수 없었습니다.
JohnOpincar 2009

10
@TED ​​나에게 이것은 오랜 개발 후에 당신이 체크인 할 때까지 모든 파일 변경의 이유를 기억해야 함을 의미합니다. 수정하고 메모리에서 변경 내용을 제거 할 수 있는지 확인하십시오. 오히려 VS 내에서이 작업을 수행하고 싶습니다
Peter M

4
Git Extensions Visual Studio 플러그인은 Microsoft가 제공 한 구식 잠금 체크 아웃 소스 제어 API에 영향을 미치지 않습니다. 편집 병합 작업 과정에 매우 적합하며 기본적으로 IDE 내부에 commit / push / pull 및 파일 기록을 추가합니다. 상황에 맞는 메뉴에 파일 기록이 있으면 매우 유용합니다!
Jacob Stanley

3
체크인하기 위해 비주얼 스튜디오를 나가야하므로 체크인 시간이 길어지기 때문에 주로 동의하지 않습니다. 하루가 시작될 때 너무 많은 사람들이 이미 체크 아웃하고 끝날 때까지 (또는 더 악화 된 날) 체크인하지 않습니다. Visual Studio와 통합하면 워크 플로에서 소스 제어를 지속적으로 유지할 수 있습니다.
Chris McGrath

8
VS2005 (VS2003?)의 Visual Studio 소스 제어 통합은 특히 체크 아웃 체크 인 모델에 의존하지 않습니다. 예를 들어 AnkhSVN을보십시오. 이름 바꾸기 등이 더 매끄 럽기 때문에 VS 통합을 선호합니다.
Roger Lipscombe

38

전체 트리에서 작업하는 Git은 파일 기반이거나 체크 아웃 편집 커밋 패턴을 따르는 소스 제어 도구보다 IDE 통합의 이점이 적다는 것을 알았습니다. 물론 몇 가지 역사 조사를 수행하기 위해 버튼을 클릭하는 것이 좋은 경우가 있지만 그다지 놓치지 않습니다.

진짜해야 할 일은 .gitignore 파일을 공유 저장소에 있어서는 안되는 것들로 가득 채우는 것입니다. 광산에는 일반적으로 다음과 같은 것들이 포함됩니다.

*.vcproj.*.user
*.ncb
*.aps
*.suo

그러나 이것은 클래스 마법사 스타일 기능을 거의 사용하지 않거나 전혀 사용하지 않고 C ++에 크게 의존합니다.

내 사용 패턴은 다음과 같습니다.

  1. Visual Studio의 코드, 코드, 코드

  2. 행복 할 때 (코드를 커밋하는 중간 지점이 감지되면, Git으로 전환하고, 변경을 준비하고, 차이점을 검토하십시오. 명백히 잘못된 것이 있으면 Visual Studio로 다시 전환하고 수정하십시오.

Git에서는 명령 프롬프트를 통해 병합, 브랜치, 리베이스 또는 기타 멋진 SCM 작업을 쉽게 수행 할 수 있습니다. Visual Studio는 프로젝트 파일을 크게 변경하면 때로는 일부 프로젝트를 다시로드해야 할 수도 있지만 일반적으로 그 변경 사항에 매우 만족합니다.

Git의 유용성은 완전한 IDE 통합을 갖지 않는 데 따르는 약간의 불편 함보다 중요하지만 어느 정도는 맛의 문제라는 것을 알았습니다.


11
그렇지 않다면, 프로젝트 파일을 버전 관리하에 두어야합니다.
CB Bailey

1
이것은 매우 중요합니다. 커밋을 시작하고 분기가 힘들어지면 .gitignore에 무언가를 포함시키는 것을 잊어 버리는 것을 복구하는 것이 가장 중요합니다.
Benjol

3
@Benjol : 그렇게 고통스럽지 않아야합니다. 당신은 필요 git rm <file>하고 echo <file> >>.gitignore; git add .gitignore활성 나뭇 가지의 끝에서. 변경 사항을 한 번 적용하면 언제든지 다른 지점에서 수정 프로그램을 선택할 수 있습니다.
CB Bailey

1
@ 찰스 베일리,이 질문에 내 모험을 참조하십시오 : stackoverflow.com/questions/1887049/…
Benjol

9
@Mike Brown : 사용자 별 설정 인 * .user 파일을 무시합니다.
Srdjan Jovcic


28

TortoiseGit도 놓치지 마세요 ... https://tortoisegit.org/


예, 이것은 좋은 UI이지만 아니요, Visual Studio와 통합되지 않습니다.
Scott Rippey

3
Git Source Control Provider는 Visual Studio의 컨텍스트 메뉴에 TortoiseGit 명령을 추가합니다.
HotN

26

있다 힘내 Visual Studio 도구 마이크로 소프트는. 그래도 Visual Studio 2012 (업데이트 2) 만 지원합니다.


Visual Studio 2012의 경우 이것이 가장 좋습니다. 구현에 많은 노력을 기울인 것으로 보이며 내 경험상 예상대로 작동합니다!
RoelF

2
개인 Github 저장소를 사용하도록 Microsoft에서 "Visual Studio Tools for Git"을 구성하는 방법을 알 수 없었습니다. 그것에 관한 문서 나 튜토리얼을 보셨습니까?
golliher

설치하기 전에 marketplace.visualstudio.com/… 에서 리뷰 섹션을 보는 것이 좋습니다 .
QMaster


18

Visual Studio에서 Microsoft가 수행하는 Git 지원은 기본 작업 (commit / fetch / merge and push)에 충분합니다. 내 조언은 그냥 피하는 것입니다 ...

나는 GitExtensions (또는 적은 비율의 SourceTree )를 선호합니다 . DAG를 보는 것이 Git의 작동 방식을 이해하는 것이 정말 중요하기 때문입니다. 그리고 프로젝트의 다른 기고자들이 한 일을 훨씬 더 잘 알고 있습니다!

Visual Studio에서는 파일 간의 차이를 빠르게 보거나 커밋하거나 인덱스에 추가하거나 수정의 일부만 커밋 할 수 없습니다. 당신의 역사를 탐색하는 것도 좋지 않습니다 ... 고통스러운 경험으로 끝나는 모든 것!

그리고, 예를 들어, GitExtensions 재미있는 플러그인이 함께 제공됩니다 : 배경, GitFlow를 가져 ... 그리고 지금, 지속적인 통합 !

Visual Studio 2015 사용자의 경우 GitHub 확장을 설치하면 Git이 구체화됩니다. 그러나 외부 도구는 여전히 낫습니다.


2015 년에 GitExtensions가 효과가 있습니까? 메뉴가 작동하지 않습니다 github.com/gitextensions/gitextensions/issues/2815
raklos




10

Jon Rimmer가 언급 한대로 GitExtensions를 사용할 수 있습니다. GitExtensions는 Visual Studio 2005 및 Visual Studio 2008에서 작동하며 .Addin 파일을 수동으로 복사 및 구성하면 Visual Studio 2010에서도 작동합니다.


좋은 것. 나는 누가 사용자 인터페이스를 테스트하고 승인하는지 궁금합니다 ... 메시지가 매우 혼란 스럽습니다 ... 내가 추측하는 것은 그것을 꺼내서 사용자가 불평하는 이유 / 이유를 알기 위해 서두른 것입니다.
ramnz

10

현재 Visual Studio에는 Git Source Control에 대한 두 가지 옵션이 있습니다 (2010 및 12).

  1. 힘내 소스 제어 제공자
  2. Microsoft Git 공급자

나는 둘 다 시도했고 첫 번째 것이 더 성숙하고 더 많은 기능을 가지고 있음을 발견했습니다. 예를 들어 거북이 git과 git 확장으로 훌륭하게 작동하며 기능을 노출했습니다.

참고 : 어떤 확장을 사용하든 확장 기능이 작동하는지 확인하십시오 Tools -> Options -> Source control -> Plugin Selection.


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