2014-03-24 2 views
13

사람들이 두 개의 다른 IDE (Visual Studio 및 Xamarin Studio)를 사용하여 동일한 코드에서 작업하는 환경에서 작업합니다. 아쉽게도 Resource.Designer.cs 파일의 버전이 약간 다릅니다. 이 파일은 자동 생성 된 파일이지만 VC에서 파일을 필요로합니다. 그렇지 않으면 복제 후 파일을 빌드하려고 할 때 프로젝트가 불평 할 것입니다.Resource.Designer.cs git에서

여기서 문제는 우리가 vc에서이 파일을 필요로하지만 아주 작은 변화가 매우 성가신 일입니다. 하나의 IDE로 프로젝트를 커밋하면 다른 사람이 프로젝트를 다른 IDE로 다운로드하고 다시 빌드하면 해당 파일이 변경됩니다. 그런 다음 분기를 전환하려고하면 병합 충돌로 인해 Git이 거부 할 수 있습니다. 마찬가지로 두 개의 분기를 병합하려고하면 해당 파일의 헤더에서 병합 충돌이 발생합니다.

두 사람이 동일한 IDE를 사용하지만 런타임 버전이 약간 다르면 같은 문제가 발생합니다. 나는 힘내에 다음과 같은 변화를 보여주는로 지금 예제를 찾고 :

문제를 해결할 것
- // Runtime Version: 4.0.30319.18444 
+ // Runtime Version: 4.0.30319.34011 

한 수정 힘내 항상의 "로컬"버전을 선택해야하는,이 파일 만에 대한 입니다 주석에 대한 모든 변경 사항을 무시할 수 있습니다. 그러나 그렇게 할 수있는 방법이 있는지 나는 모른다. 그렇지 않은 경우,이 파일을 조금만 변경하면 일정한 번거 로움을 피할 수있는 또 다른 방법이 있습니까?

+0

관련 내용 : [Resources.Designer.cs가 소스 제어하에 있어야합니까?] (http://stackoverflow.com/questions/2200383/should-resources-designer-cs-be-under-source-control) –

답변

2

git에서이 문제를 해결할 수있는 몇 가지 방법이 있습니다. 참조 : https://gist.github.com/canton7/1423106. 링크는 설정 파일을 처리하지만 필요에 따라 상황에 적용 할 수 있습니다.

이 문제를 해결하는 가장 간단한 방법은 Resource.Designer.cs.in으로 파일을 커밋 한 다음 수동으로 복제 한 후 Resource.Designer.cs으로 복사하는 것입니다. 또한 .gitignore 파일에 Resource.Designer.cs을 추가하십시오.

3

우리 개발 팀에서는 Resource.Designer.cs을 Git repo에 위임하여이 문제를 해결합니다. 그 후 각 개발자는 git update-index --assume-unchanged Resource.Designer.cs을 실행하여 Git이 해당 파일에 대한 업데이트를 무시하도록 할 수 있습니다.

git status을 수행 할 때 색인을 업데이트 한 후 Resource.Designer 파일의 변경 내용은 "커밋 준비가 완료되지 않은 변경 사항"섹션에 표시되지 않습니다.

해당 파일에 대한 커밋이 필요한 경우 git update-index --no-assume-unchanged Resource.Designer.cs을 실행하면 Git에서 해당 파일의 변경 내용을 다시 추적하기 시작합니다.