버전 제어를 위해 어떤 Visual C ++ 파일 형식을 커밋해야합니까?


170

버전 제어를 위해 어떤 Visual Studio \ Visual C ++ 파일 형식을 커밋해야합니까?
내 프로젝트에는 다음과 같은 파일 형식이 있습니다.

aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj

나는 각각에 대한 짧은 추론을 크게 고맙게 생각합니다. 논란의 여지가있는 경우에는주의하십시오. 완전성을 위해 사소한 파일 형식도 의도적으로 포함하고 있습니다.

편집하다

한편으로는 앞으로 플랫폼 독립적이되고 싶습니다. 반면에 가까운 시일 내에 비슷한 설정을 가진 팀원들과 협력하고 싶습니다. 설정 간의 폴더 호환성은 확실히 옵션이므로 워크 플로우를 용이하게하면 경로를 포함하는 구성 파일이 포함될 수 있습니다.
다시 한 번, 무엇이 무엇인지 설명을 부탁드립니다.


23
와우,이 질문은 VS가 프로젝트 디렉토리에서 생성해야한다고 주장하는 임시 파일 수의 증가에 대한 진정한 증거입니다.
Nik Reiman

@Nik : 프로젝트 디렉토리에 없습니다.
Hans Passant

1
@Hans, 그들은 또는 프로젝트 하위 디렉토리에 있습니다
Nik Reiman

@Nik : msbuild goo가 아닙니다. 임시 파일을 의미한다고 가정합니다. 동의합니다. 예쁘지 않습니다.
Hans Passant

6
Xilinx의 ISE 개발 환경 (HDL 프로그래밍 용)을 사용해보고 얼마나 많은 임시 파일이 유출되는지 확인하십시오. 수백 개의 확장자를 가진 수백 개의 파일 :) 혼란에 대해 이야기하십시오. Visual Studio는 비교가 매우 깨끗합니다.
Mark Lakata

답변:


232

예:

  • cpp : 소스 코드
  • 필터 : 프로젝트 파일
  • h : 소스 코드
  • ico : 자원
  • rc : 리소스 스크립트
  • rc2 : 리소스 스크립트
  • sln : 프로젝트 파일
  • txt : 프로젝트 요소
  • vcxproj : 프로젝트 파일

아니:

  • aps : 마지막 리소스 편집기 상태
  • exe : 빌드 결과
  • idb : 빌드 상태
  • ipch : 빌드 헬퍼
  • lastbuildstate : 빌드 헬퍼
  • lib : 빌드 결과. 타사 가능
  • 로그 : 빌드 로그
  • 매니페스트 : 빌드 도우미 스스로 쓸 수 있습니다.
  • obj : 빌드 헬퍼
  • pch : 빌드 헬퍼
  • pdb : 빌드 결과
  • 입술 : 빌드 도우미
  • sdf : 인텔리전스 dbase
  • suo : 솔루션 사용자 옵션
  • tlog : 빌드 로그
  • 사용자 : 디버그 설정. 하나의 개발자 또는 사용자 정의 디버그 설정 인 경우 유지

이들 중 일부는 자동 생성 및 유지 관리가 가능하기 때문에 iffy입니다. 그리고 당신의 목록에 나타나지 않는 몇 가지가 더 있습니다. 주로 파일 위치에주의하십시오. 솔루션 또는 프로젝트 디렉토리에있는 경우 체크인 할 가능성이 높습니다. 디버그 또는 릴리스 서브 디렉토리에서 가능성이 거의 없습니다. Build + Clean은 많은 노이즈 파일을 제거합니다. 물론 체크인 : 프로젝트 디렉토리 이름 바꾸기, 체크 아웃 및 빌드 확인.


이것은 매우 유용합니다. 내 프로젝트에는 .vcb도 있습니다 (이 프로젝트는 이전 버전 (eVC)에서 변환되었으므로 관련이있을 수 있습니다)
Robbie Matthews

무엇에 대한 .vcxproj.filters파일?
John Alexiou

1
.OPENSDF에 대한 NO
Zam

1
@ ja72 filters는 답변의 첫 번째 개정 이후 "예"목록에있었습니다
날개를 가진 소행성

26

당신의 목록에서 나는 그것들을 선택할 것입니다 :

cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj

일반적으로 프로젝트를 빌드하는 데 필요한 모든 파일의 버전을 지정해야합니다. 자동으로 생성 된 파일은 imho로 보관해서는 안됩니다.


간결한 목록에 감사드립니다. Hans Passant의 답변과 비교하여 내가하지 말아야 할 곳에 매니페스트 파일을 커밋해야한다고 말했습니다. 이 파일의 의미를 자세히 설명해 주시고 특히 팀 (및 향후 크로스 플랫폼) 환경에서 커밋해야한다고 생각하는 이유는 무엇입니까?
Jonathan

3
매니페스트는 다른 목적을 가질 수 있습니다. 리소스 파일에 포함 된 것을 수동으로 만들어서 창에 스타일을 창에 적용 시켰습니다. 또한 실행 파일과 함께 표준 라이브러리 dll을 배포 할 수있는 매니페스트가 있습니다. 애플리케이션에 대한 메타 데이터를 생각해보십시오.
Milan

@ milan1612-다른 유형을 발견했습니다-suo, 이것도 추가해야합니까? 그렇다면 목록에 추가하여 완성 할 수 있습니까?
조나단

3
@Jonathan suo는 솔루션과 관련된 개발자 별 데이터 (예 : 솔루션 탐색기에서 열려있는 파일 또는 폴더 열기 / 축소와 같은)를 보유합니다. 따라서 버전 관리에 있어서는 안됩니다.
Daniel Rose

1
@ milan1612-Daniel Rose의 입력에 따라 목록에서 suo를 제거 할 수 있습니까?
조나단

17

Microsoft에서 제안한대로 버전 관리에 포함되어야하는 파일 형식은 다음과 같습니다.

.mak, .dsp, .c, .rc, .rc2, .ico, .bmp, .txt, .def, .hpj, .bat, .rtf, .odl, .inf, .reg, .cnt, .cpp , .cxx, .h, .hpp, .hxx, .inl, .tpl, .vtp 및 .mst ...

포함해서는 안되는 파일 형식 :

.pch, .mdp, .ncb, .clw, .obj, .exe, .aps, .cpl, .awk, .exp, .lib, .idb, .opt, .pdb, .map, .res, .ilk , .scc, .bsc, .sbr, .dll 및 .tlb ...

그러나 exe 파일 또는 외부 라이브러리에서 외부 도구를 사용하는 경우 버전 관리에도 포함되어야한다고 생각합니다.

정보 : 소스 코드 컨트롤에 추가 할 Visual C ++ 파일

또한이 링크는 Visual Studio 2017의 Visual C ++ 프로젝트대한 파일 형식을 설명합니다 .


7

프로젝트를 마우스 오른쪽 버튼으로 클릭하면 상황에 맞는 메뉴에 "소스 제어에 솔루션 추가"옵션이 있어야합니다.

이를 사용하면 필요한 파일 만 추가됩니다. 모든 중간 및 출력 파일이 무시됩니다.


4

다른 답변은 훌륭합니다. 방금 유용한 작은 도구를 제공한다고 생각했습니다. GitHub 에서 Visual Studio .gitignore 템플릿 을 확인하십시오 . 일반적으로 버전 관리에서 제외되는 활발하게 유지 관리되는 파일 목록입니다.

또한 모든 gitignore 저장소ActionScript 에서 Zend에 이르는 모든 종류의 개발에 매우 ​​유용한 리소스입니다 . Git을 사용하지 않더라도 gitignore 파일을 참조로 사용할 수 있습니다.


1

일반적으로 솔루션 탐색기에 나타나는 모든 파일을 버전 제어에 추가해야합니다. 또한 .sln (솔루션 파일) 및 .vcproj / .vcxproj / .vbproj / .csproj 파일 (프로젝트 파일)을 포함해야합니다.

Visual Studio 용 소스 제어 플러그인 (예 : TFS 또는 AnkhSvn)이 있으면이를 명시 적으로 신경 쓸 필요가 없습니다. Visual Studio는 어떤 파일이 버전 제어에 필요한지 알고 소스 제어 플러그인에 데이터를 제공합니다. 외부 도구 (예 : TortoiseSVN)를 사용하는 경우에만 그러한 목록이 필요합니다.


0

목표를 세우는 데 필요한 시간 만 나는 이것이 단지 .cpp .h .ico .rc .txt .manifest .rc2라고 생각합니다.

sdf, aps, filters, user가 무엇인지 모르겠으며 C ++ 빌드에서 sdf, aps, filters, user를 보지 못했습니다.

프로그래머가 작성한 코드가 포함되어 있는지 또는 VS에서 생성했는지 확인하십시오.


4
.sln 및 .vcxproj는 프로젝트와 솔루션을 설명하는 데 반드시 필요합니다.
sharptooth

예, makefile을 유지하지 않으면 죄송하지만 저는 개인적으로 Anti-VS / MS이므로 Visual Studio를 개발자를위한 유일한 도구로 사용하는 사람들이 있다는 것을 잊었습니다. 디버거 만 사용하고 있습니다.
Lothar

3
VS 프로젝트 파일도 메이크 파일입니다
Milan

-2

이전 답변에서 언급 한 내용과 달리 .opt 파일을 버전 제어하여 사용자 옵션을 추적하는 것이 중요하다고 지적하고 싶습니다. 아래 참조를보십시오 :

https://msdn.microsoft.com/en-us/library/aa278994(v=vs.60).aspx


1
.opt 파일 은 프로그램이 컴파일되는 방식이 아니라 IDE 의 모양과 느낌 을 제어합니다 . 따라서 다른 관점에서 IDE에 대해 기분이 좋은 것은 아닙니다.
phuclv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.