.vscode 폴더를 소스 제어에 커밋해야합니까?


295

.vscode폴더는 소스 제어에 전념해야합니까?

새로운 프로젝트에서는 settings.json파일을 제외한 폴더가 비어 있습니다. 이 폴더에는 어떤 것들이 있습니까? .vs폴더와 같이 머신별로, 개발자별로, 커밋되지 않습니까? 아니면 모든 개발자가이 폴더를 공유해야하므로 커밋해야합니까?

파일 상단의 주석은 .vscode/settings.json다음과 같습니다.

// Place your settings in this file to overwrite default and user settings.
{
}

이것은 폴더에 프로젝트 별 설정이 포함되어 소스에 포함되어야 함을 의미합니다. 또한 UserVoice에 대한이 게시물은 일부 입력 내용이 입력되어 커밋해야 함을 암시하는 것으로 보입니다.


Visual Studio에서 프로젝트를 시작한 다음 커밋하는 경우 .gitignore FE를 시작해야합니다. 그것이있을 예정이라면 아마도있을 것입니다. 또한 참조 할 수 있습니다 나는 문제없이 사용했습니다 어느.
ChiefTwoPencils

2
좋은 아이디어, @ChiefTwoPencils! 레코드의 경우 .gitignoreVisual Studio가 만드는 기본값 .vscode에는이 시점에서 폴더가 제외됩니다. 그러나 VS 코드 자체는 다소 새롭기 때문에 아직 가져 오지 않았을 수 있습니다. 더 많은 정보를 얻는 동안 폴더를 추적하지 않았습니다.
Ronald Zarīts

답변:


314

.vscode팀과 설정, 작업 구성 및 디버그 구성을 공유 하려면 폴더를 체크인하십시오 . 팀에서 설정을 적용하려면 일반적으로 설정 (예 : 공백 대 탭)을 팀과 공유하는 것이 좋습니다. VS Code 팀에서는 팀이 VS Code에 대해 동일한 디버그 대상 및 작업 대상 집합을 갖기를 원하기 때문에 디버그 및 작업 별 설정도 공유합니다.

그러나 .vscode설정을 위해 프로젝트에 폴더 가 필요하지 않습니다 . 사용자 수준에서 설정을 구성 할 수도 있습니다.


54
감사! "VS Code 팀에 소속되어 있습니다 ..."는 저에게 충분합니다. 최소한 시작하기에는 충분합니다!
Ronald Zarīts

97
"whitespace vs. tabs"와 같은 파일 수준 설정을 공유하려면 EditorConfig 와 같은 크로스 에디터 솔루션을 살펴 봐야 합니다.
Tanz87

2
이 디렉토리에는 80MB 크기의 하위 디렉토리 "chrome"이 있습니다. 이것이 저장소에 커밋되어야합니까?
ygoe

10
작업 공간 설정에 VirtualEnv 또는 Anaconda 환경과 같은 환경 별 Python 경로가있는 Python 프로젝트와 같은 작업에는 VSCode를 사용하지 않아야합니다. 대부분의 시나리오에서 이러한 파일을 확인하는 것은 큰 문제처럼 들립니다. 대신 샘플 / 기본 파일을 체크인하십시오.
StefanGordon

3
후속 symbols.json
조치

39

커밋 / 무시 사이에 세 번째 영리한 옵션이 있습니다 : .default접미사로 커밋 .

예를 들어, 당신은 추가 할 수 있습니다 settings.json.gitignore, 커밋 settings.json.default이와 (나의 팀) 일반적인 관행 훨씬처럼 .env파일.

비디오 커밋 편집기 설정에서 버전 관리 까지이 조언을 받았습니까? 에 의해 마티아스 페터 요한슨


5
A는 settings.json.default의미가 있지만, 이것은 전체 팀이 코드 대 사용하고 코드베이스가 더 넓은 청중에게 공유되지 않는 가정한다. GitHub의 오픈 소스 프로젝트를 발견했습니다. 코드베이스의 잠재적 사용자에게 특정 IDE를 강제로 적용하고 싶지 않기 때문에 기본 gitignore에 추가해야합니다.
jamescampbell

3
@jamescampbell IDE 관련 파일을 추가해도 거의 모든 사람에게 해당 IDE를 강요하지 않습니다. IDE를 사용하는 경우 공통 환경 설정을 가져올 수있는 옵션 만 제공됩니다. 더 큰 문제는 해당 파일이 공식적으로 지원되는지 여부입니다. 즉, 항상 최신 상태로 작동하도록 설계되었습니다. 이론적으로 서로 다른 IDE에 대한 여러 IDE 환경 파일을 충돌없이 사용할 수 있습니다.
LightCC

23
  • .vscode/settings.json예외를 제외하고는 절대 커밋하지 마십시오 search.exclude. 실제로 필요한 경우 다른 개발자 에게 적용 하려는 프로젝트의 특정 설정 만 설정하도록주의하십시오 .
  • 유효성 검사, 서식, 컴파일 사용하는 다른 파일이 좋아하는 package.json, .eslint, tsconfig.json, 등
  • 포함해야하는 유일한 .vscode는 디버깅을위한 복잡한 시작 구성입니다.
  • 시스템에 개인 정보를 넣을 수있는 타사 확장 프로그램이있을 수 있습니다.

당신이 할 수없는 것은 전체 settings.json 내용 파일을 복사하여 붙여 넣는 것 .vscode/settings.json입니다. 일부 사람들 이이 작업을 수행하고 파일을 커밋하는 것이 복잡합니다. 이 경우 다른 작업 공간을 파괴 할뿐만 아니라 최악의 경우 미학, UI, 경험을 좋아하지 않아야하는 설정을 사용자에게 적용해야합니다. 일부는 시스템에 매우 의존적이기 때문에 환경을 깨뜨릴 수 있습니다. 시력에 문제가있어 editor.*사용자 설정이 개인화되고 프로젝트를 열면 영상이 변경된다고 상상해보십시오 . 시력에 문제가 있다고 상상해보십시오. 사용자 편집기. * 설정을 개인화하여 작업해야합니다. 화가 나 겠어요

당신이 진지한 경우 커밋하지 마십시오 .vscode/settings.json. 일반적으로 유효성 검사, 컴파일과 같은 특정 프로젝트에 유용한 설정은 의미가 있지만 일반적으로 .eslint, tsconfig.json, .gitignore, package.json과 같은 특정 도구 구성 파일을 사용할 수 있습니다. 등등. vscode 작성자가 새로운 이민 경험을 단순화하기 위해 파일을 추가했다고 생각하지만 진지하게 원한다면 그렇게하지 마십시오!

유일한 예외이며 매우 특별한 경우 search.exclude가 될 수 있습니다.


3
나는 당신의 제안 .vscode/settings이 너무 제한적 이라고 생각합니다 . 가능 하다면 파일 .eslint이나 .editorconfig파일을 사용 하지만 .vscode/settings팀 / 프로젝트의 모든 개발자가 설정을 공유하고 싶다면 여전히 체크인해야합니다.
Matt Bierner

3
Matt, 왜 다른 모든 개발자가 vscode를 사용한다고 가정합니까? webstorm, vim, sublime을 사용하는 사람들이 될 수 있으므로 settings.json이 아닌 eslint 등을 사용해야합니다.
Cancerbero

다시 말하지만 .vscode/settingsvscode를 사용하는 팀에서 작업하거나 많은 개발자가 vscode를 사용하는 프로젝트에서 작업하고 있는지 확인하십시오. 이 설정들 모두에 크로스 에디터에 해당하는 것은 아닙니다.
Matt Bierner

@MattBierner 공정한 경우, 에디터를 시행하는 회사에서 가까운 소스 프로젝트를 개발하는 경우, 이것이 일반적인 상황이라고 생각하지는 않으며 특별히 오픈 소스 프로젝트에서 생각하지 않습니다 ...
cancerbero

타사 확장에 대한 요점은 매우 유효합니다. 예를 들어 MS SQL 확장이 프로젝트 / 작업 영역 설정에 연결 프로파일을 추가한다고 생각합니다. 존재하는 경우 자격 증명을 저장하지는 않지만 서버 이름 등을 체크인 할 수 있습니다. .
댄 해리스

18

다른 답변 요약

일반적으로 .vscode폴더를 제외 하고 다른 개발자가 공유 설정을 다시 만들 수 있도록 선택된 JSON 파일을 남겨 두는 것이 좋습니다.

다음과 같은 설정 예 :

  • 테스트 스위트를 실행하기위한 언어 별 테스트 구성 ( settings.json)
  • 이 저장소에 사용 된 언어 규칙을 적용하기위한 린터 및 코드 형식 도구의 확장 설정 ( settings.json)
  • 구성 실행 및 디버그 ( launch.json)
  • 공유 작업-VS 코드로 관리되는 경우 ( tasks.json)

일부 설정은 작업 공간 파일에 저장하거나 .vscode 폴더에서 전송할 수 있습니다. 아래를 참조하십시오.


.gitignore사용할 샘플 코드 (및 어디서 구할 수 있는지)

https://gitignore.io 에서 제안 된 설정은 다음과 같습니다 . 최신 권장 .gitignore파일 을 얻기 위해 "VisualStudioCode"를 검색 할 수 있습니다 . 나는이 웹 사이트 .gitignore를 나의 새로운 repos 대부분의 출발점으로 사용합니다 :

# Created by https://www.gitignore.io/api/visualstudiocode
# Edit at https://www.gitignore.io/?templates=visualstudiocode

### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

### VisualStudioCode Patch ###
# Ignore all local history of files
**/.history

# End of https://www.gitignore.io/api/visualstudiocode

상기에서 .gitignore파일의 .vscode/*라인은 모든 것을 제외 말한다 .vscode폴더를하지만, 다음 !.vscode/a_specific_file라인에 해당 폴더 (일부 특정 파일을 무시 "하지"이눔으로 말할 settings.json, launch.json등). 결과적으로 .vscode다른 라인 중 하나에 특별히 이름이 지정된 파일을 제외하고 모든 것이 폴더에서 제외됩니다.


다른 요인과 자신을 알아내는 방법 ...

리포지토리에 .vscode폴더를 포함 한다고해서 실제로 다른 IDE (또는 텍스트 / 코드 편집기)를 사용하는 사람은 다 치지 않습니다 .

그러나이 파일에 환경에 따라 다른 환경이 필요한 일반 설정이 포함 된 경우 VS 코드를 사용하는 다른 사람들에게 상처를 줄 수 있습니다. pythonpath에서 .vscode/settings.json). 핵심은 로컬 환경에 맞춤 설정을 저장하지 않고 모든 사람이 사용할 수있는 설정 만 공유하는 것입니다.

예를 들어, IDE 설정 파일에 repo 또는 파일 / 라이브러리 등의 절대 경로가 있으면 나쁘지 않습니다. 그러나 모든 참조가 상대적이라면 repo를 사용하는 모든 사람에게 효과적이어야합니다 (그러나 Windows / Unix 간의 경로 사양 차이에주의하십시오).


사용자, 작업 공간 및 폴더 설정 정보

참고 :.vscode 폴더 의 설정 파일 은 일반적으로 설정 의 폴더 버전을 변경할 때만 업데이트됩니다 (많은 예외가있는 것 같습니다).

  • 사용자 설정 을 변경하면 일반적으로 다른 곳에 저장됩니다.
  • 작업 공간 설정 을 변경하면 일반적으로*.code-workspace 현재 사용중인 폴더에 저장됩니다 (폴더 설정 파일로 이동하지만 수동으로 이동할 수 있습니다).

즉, 개인 PC에 대한 사용자 정의 설정을 사용자 설정에 배치하고, 특정 프로젝트 / 패키지에 대한 일반적인 설정을 가능하면 다른 것에 배치해야합니다.

  • 파이썬 확장을 사용할 때 .vscode/settings.json파일 ( 폴더 설정을 저장하는)은 항상 설정 아래의 절대 경로를 저장 pythonpath하므로 .gitignore파일 에서 제외를 제거 하고 더 이상 파이썬 저장소에 저장하지 않습니다. 상대 경로로 저장하더라도 VS Code는 절대 경로로 재설정합니다.
  • 대신에, 난 그냥 폴더 저장 나는 예는 생성 (작업 공간과 같은 코드의 사용을 필요 myproject.code-workspace로 파일 로> 저장 작업 공간을 - 파일을 그런 식으로, 당신은 REPO에 작업 공간 파일로 전환을 제어하고 저장할 수 있습니다 제외한있다. 폴더 설정 파일 ( .vscode/settings.json) 작업 영역과 폴더 설정 파일간에 설정을 이동하여 저장할 내용과 저장되지 않는 내용을 제어 할 수 있습니다. 작업 공간 파일은 폴더 설정 파일의 모든 항목을 무시한다는 점을 명심하십시오.

짧고 짧습니다. 작업 공간 파일을 사용하고 가장 일반적인 설정을 넣을 수 있지만 로컬 설정을 폴더 설정 파일에 넣는 동안 사용하는 확장명 / 언어에 따라 다릅니다.

물론 .vscode/settings.json파일 을 저장 하거나 그 일부 를 저장해야하는 다른 이유가있을 수 있습니다 . 또는 현재 언어의 설정에 문제가되지 않을 수 있습니다.

귀하의 마일리지가 다를 수 있습니다...


10

왜 여기 주변의 주장 외에 실습을 보지 않겠습니까?

.vscode내가 지금까지 찾은 가장 큰 프로젝트 중 하나 는 Mozilla Firefox 입니다. Firefox 팀 이 일반적인 작업 과 권장되는 확장 기능을 공유 하는 것 같습니다 .

그래서 .vscode당신이하고있는 일을 알고있는 한 계속 유지하는 것이 나쁜 생각이 아니라고 생각합니다 .

공유하는 다른 큰 프로젝트가 표시되면이 게시물을 업데이트하겠습니다 .vscode.


8

다른 답변과 동일합니다 : 아니요.

예를 들어, Git 2.19 (Q3 2018)에서 선택한 접근 방식을 고려하면 contrib/VSCode 사용자가 Git 코드베이스를보다 잘 사용하는 데 도움이 되는 스크립트 (in )가 추가 됩니다.

다시 말해서, .vscode컨텐츠를 생성하십시오 (아직없는 경우), 버전을 지정하지 마십시오.

참조 12861e2 커밋 , 2a2cdd0 커밋 , 5482f41 커밋 , f2a3b68 커밋 , 0f47f78 커밋 , b4d991d 커밋 , 58930fd 커밋 , dee3382 커밋 , 54c06c6 커밋 에 의해 (2018 7월 30일) (요하네스 Schindelin을 dscho) .
(가 합병 - Junio C 하마노 gitster-30cf191 커밋 2018 15 팔월)

contrib: VS 코드 구성을 초기화하는 스크립트 추가

VS Code는 가볍지 만 강력한 소스 코드 편집기로 데스크탑에서 실행되며 Windows, macOS 및 Linux에서 사용할 수 있습니다.
다른 언어 중에서도 확장을 통해 C / C ++를 지원하므로 코드를 빌드 및 디버깅 할뿐만 아니라 Intellisense (예 : 코드 인식 완료 및 유사한 기능)를 제공합니다.

이 패치는 VS 코드와 효과적으로 작동하도록 환경을 설정하는 데 도움이되는 스크립트를 추가 합니다. Unix 쉘 스크립트를 실행 contrib/vscode/init.sh하여 관련 파일을 만들고 VS 코드에서 Git 소스 코드의 최상위 폴더를 엽니 다 .


1

대답은 "아니오"입니다. .vscode 폴더는이 편집 기용 이므로 다른 사람을 혼동하는 경우 이러한 개인 설정을 저장소로 푸시 해서는 안되므로 변경 사항을 무시 하기 위해 프로젝트의 .gitignore 파일에 추가 할 수 있습니다.


17
나는 당신의 엄격한 입장에 동의하지 않습니다. @ BenjaminPasero의 답변에서 언급했듯이 반드시 할 필요는 없지만 작업 구성 공유와 같은 많은 경우에 의미가 있습니다. 물론, 팀원을 염두에두고 불필요하게 그들에 대한 선호를 강요하지 않는 것이 좋습니다.
Ronald Zarīts

예, 그렇기 때문에 별도의 사용자 설정과 작업 영역 설정 (작업 영역의 .vscode/settings.json파일)이 있습니다. code.visualstudio.com/docs/getstarted/… 도구 구성과 같은 것만 작업 영역 설정으로 이동
Matt Bierner

@ RonaldZarīts .vscode 폴더는 자신의 편집기 설정 및 코드 스타일에 관한 것입니다. 저는 이전에 말했듯이 폴더를 git 제어 흐름으로 푸시하지 마십시오.
jialin wang

6
@jialinwang 죄송합니다. 벌써 했어요. ;) 농담을 제외하고는 공유하기에 유용한 항목도 포함되어 있습니다. 예를 들어 우리 프로젝트에는 (1) launch.json-설정하기가 쉽지 않은 디버깅을위한 시작 구성이 있습니다. (2) settings.json사용할 TypeScript 컴파일러, 공백 규칙, (3) tasks.json-빌드 명령 과 같은 프로젝트 레벨 설정 . 공유하지 않도록 선택할 수 있지만 유용합니다.
Ronald Zarīts

@jialinwang 아니에요. 폴더 수준 설정입니다. 최상위 폴더를 포함해야 할뿐만 아니라 하위 폴더와 관련된 설정이있는 경우 해당 폴더도 포함해야합니다. 중요한 것은 사용자 기본 설정 폴더 수준 설정 에서 유지하는 것입니다 (다른 이유로도 중요 함). 폴더 수준 설정에 포함해야 할 사항은 포맷터, 린터, 공백 규칙 (예 : 최종 후행 줄 바꿈, 탭 크기 등) 전체 폴더에 적용해야합니다.
DylanYoung

1

프로젝트 git 저장소에 커밋하지 않고 설정을 유지하는 간단한 방법은 작업 영역을 만들고 폴더를 추가하는 것입니다.

작업 공간을 작성할 때 파일을 저장해야합니다 code-workspace. 이 파일에는 커스텀 설정이 포함되어 있으며,이 파일을 git 저장소에서 저장하면 파일에 자유롭게 추가 .vscode할 수 .gitignore있습니다.

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