내 프로토콜 버퍼를 C#으로 포트하기 위해 Visual Studio와 함께 Git을 사용합니다. GUI를 사용하지 않습니다. Visual Studio뿐만 아니라 명령줄도 열어 둡니다.
대부분의 경우 문제는 없습니다. 유일한 문제는 파일 이름을 변경하려는 경우입니다. 힘내 및 Visual Studio 모두는 이름을 바꿀 수있는 일이었다 것보다는 것이다. Visual Studio에서 이름을 바꾸는 것이 가장 좋은 방법이라고 생각합니다. 나중에 Git 측에서 수행하는 작업에 주의하세요. 과거에는 이것이 약간 고통스러웠지만 내용이 대부분 동일하다는 것을 알 수 있기 때문에 Git 측에서 실제로 매우 매끄럽게 해야 한다고 들었습니다. (완전히 같지는 않습니다. 일반적으로 IME라는 클래스의 이름을 바꿀 때 파일의 이름을 바꾸는 경향이 있습니다.)
그러나 기본적으로 - 예, 잘 작동합니다. 저는 Git 초보자이지만 필요한 모든 작업을 수행할 수 있습니다. bin 및 obj 및 *.user에 대한 git 무시 파일이 있는지 확인하십시오.
나는 직장에서 이것을 조금 조사했습니다(Subversion과 Git 모두에서). Visual Studio에는 실제로 타사 소스 제어 솔루션을 Visual Studio에 통합할 수 있는 소스 제어 통합 API가 있습니다. 그러나 대부분의 사람들은 몇 가지 이유로 이를 신경 쓰지 않습니다.
첫 번째는 API가 잠긴 체크아웃 워크플로를 사용하고 있다고 가정한다는 것입니다. 구현하는 데 비용이 많이 들거나 보다 현대적인 편집-병합 워크플로를 사용할 때 의미가 없는 후크가 많이 있습니다.
두 번째(관련)는 Subversion과 Git 모두에서 권장하는 편집-병합 워크플로를 사용할 때 Visual Studio 통합이 실제로 필요하지 않다는 것입니다. SourceSafe와 Visual Studio의 통합에서 가장 중요한 것은 사용자(및 편집자)가 소유한 파일, 편집하기 전에 체크아웃해야 하는 파일, 원하더라도 체크아웃할 수 없는 파일을 한 눈에 알 수 있다는 것입니다. 그런 다음 파일을 편집할 때 수행해야 하는 모든 개정 제어 부두 작업을 수행하는 데 도움이 될 수 있습니다. 그 어느 것도 일반적인 Git 워크플로의 일부가 아닙니다.
Git(또는 일반적으로 SVN)을 사용할 때 개정 제어 상호 작용은 모두 개발 세션 전이나 후에(모든 것이 작동하고 테스트한 후) 발생합니다. 그 시점에서 다른 도구를 사용하는 것은 그리 큰 고통이 아닙니다. 계속해서 앞뒤로 전환할 필요가 없습니다.
T.E.D.
전체 트리에서 작업하는 Git은 파일 기반이거나 체크아웃-편집-커밋 패턴을 따르는 소스 제어 도구보다 IDE 통합의 이점이 적습니다. 물론 버튼을 클릭하여 이력 조사를 하는 것이 좋을 때도 있지만 그리 그리워하지는 않습니다.
진짜 해야 할 일은 .gitignore 파일을 공유 저장소에 있어서는 안 되는 것들로 가득 채우는 것입니다. 광산에는 일반적으로 다음이 포함됩니다.
*.vcproj.*.user *.ncb *.aps *.suo
그러나 이것은 클래스 마법사 스타일 기능을 거의 사용하지 않거나 전혀 사용하지 않고 C++에 크게 편향되어 있습니다.
내 사용 패턴은 다음과 같습니다.
Visual Studio의 코드, 코드, 코드.
만족할 때(코드를 커밋하는 합리적인 중간 지점, Git으로 전환하고 변경 사항을 단계적으로 검토하고 차이점을 검토합니다. 분명히 잘못된 것이 있으면 Visual Studio로 다시 전환하여 수정하고, 그렇지 않으면 커밋합니다.
병합, 분기, 리베이스 또는 기타 멋진 SCM 작업은 명령 프롬프트에서 Git에서 쉽게 수행할 수 있습니다. Visual Studio는 일반적으로 프로젝트 파일을 크게 변경한 경우 일부 프로젝트를 다시 로드해야 할 수 있지만 일반적으로 변경되는 사항에 상당히 만족합니다.
나는 Git의 유용성이 완전한 IDE 통합이 없는 사소한 불편함보다 더 크다는 것을 알지만 그것은 어느 정도 취향의 문제입니다.
Visual Studio에서 Microsoft가 수행하는 Git 지원은 기본 작업(커밋/페치/병합 및 푸시)에 충분합니다. 제 조언은 그냥 피하라는 것입니다...
나는 GitExtensions (또는 SourceTree비율이 덜함)를 매우 선호합니다. DAG를 보는 것은 Git이 어떻게 작동하는지 이해하는 것이 정말 중요하기 때문입니다. 그리고 당신은 당신의 프로젝트에 기여한 다른 사람들이 무엇을 했는지 훨씬 더 잘 알고 있습니다!
Visual Studio에서는 파일 또는 커밋 간의 차이점을 빠르게 확인할 수 없으며(인덱스에 추가) 수정 사항의 일부만 커밋할 수도 없습니다. 당신의 역사를 탐색하는 것도 좋지 않습니다 ... 모든 것은 고통스러운 경험으로 끝납니다!
예를 들어 GitExtensions는 백그라운드 가져오기, GitFlow 등 흥미로운 플러그인과 함께 번들로 제공되며 이제 지속적인 통합이 가능합니다 !
Visual Studio 2015 사용자의 경우 GitHub 확장을 설치하면 Git이 구체화되고 있습니다. 그러나 외부 도구가 여전히 더 좋습니다 ;-)
Philippe
TortoiseGit 은 성숙했고 특히 TortoiseSVN을 사용한 적이 있다면 추천합니다.
Jon Rimmer가 언급한 대로 GitExtensions를 사용할 수 있습니다. GitExtensions는 Visual Studio 2005 및 Visual Studio 2008에서 작동하며 .Addin 파일을 수동으로 복사하고 구성하는 경우 Visual Studio 2010에서도 작동합니다.
Henk
현재 Visual Studio(2010 및 12)에는 Git Source Control에 대한 2가지 옵션이 있습니다.