IntelliJ의 Shelve와 Git 숨김의 차이점은 무엇입니까?


답변:


69

IntelliJ 문서에서 :

Git 통합에서는 shelving 및 unshelving 외에도 각각 "stashing"및 "unstashing"이 지원됩니다. 이러한 기능은 공통점이 많으며 유일한 차이점은 패치가 생성되고 적용되는 방식입니다.

  • 숨김 변경 사항이있는 패치는 Git 자체에서 생성됩니다. 나중에 적용하려면 IntelliJ IDEA가 필요하지 않습니다.
  • 보류 된 변경 사항이있는 패치는 IntelliJ IDEA에서 생성됩니다. 일반적으로 IDE를 통해서도 적용됩니다. IntelliJ IDEA 외부에서 보류 된 변경 사항을 적용하는 것도 가능하지만 추가 단계가 필요합니다.

22
글쎄, 그래서 그것은 단지 평범한 자식과 "덜 호환"되기 때문에 선반의 장점은 무엇입니까?
— MaxiWheat

17
기본 숨김 스타일 기능이없는 VCS를 사용하는 경우 선반이 유용 할 것 같습니다. git을 사용하면 실제 이점을 볼 수 없습니다.
— Daniel Compton

5
'실제 혜택'은 id.bobr의 답변에 나와 있습니다. 저에게 가장 중요한 것은 커밋 할 때처럼 숨길 파일 / 청크를 선택할 수 있다는 것입니다.
— Martin Melka

1
Git 2.13부터 git stash push.
— Deric Lima

Shelve는 내부 내용과 차이점에 대한 훨씬 더 나은 개요를 제공합니다. 변경된 파일의 일부만 적용하는 것이 더 쉽습니다. 처음에는이 기능에 대해 확신하지 못했지만 지금은 숨김보다 더 자주 사용하고 있습니다.
— itachi

47

다음을 제외하고는 매우 유사합니다.

  • Intellij의 기능이기 때문에 IDE 외부에서 shelve를 사용할 수 없습니다.
  • Git stash는 전체 작업 디렉토리 및 색인에서만 작동합니다. IntelliJ의 shelve는 개별 파일 및 변경 목록 (다른 IntelliJ의 기능)으로 작업 할 수 있습니다. 보시다시피, 예를 들어 여기 에서 가끔 필요합니다.
  • Idea에는 선반에 대한 더 나은 기본 지원이 있습니다. git stash로 작업하는 것이 더 간단합니다. 특히 버전 관리 도구 창에서 변경 사항을 보류 / 보류 해제하거나 보류 된 파일을 검토 할 수 있습니다.

또한 IMHO, shelve는 특히 많은 파일이 변경된 큰 프로젝트에서 약간 더 빠르게 작동합니다.

자세한 내용은 설명서 를 참조하십시오.


변경 사항을 마우스 오른쪽 버튼으로 클릭하면 매우 유용하다는 것을 알 수 있습니다. 당신이 언급했듯이, 나는 그것이 약간 더 빠르다는 것을 알았습니다.
— vikingsteve

4
"Git 숨김은 전체 작업 디렉토리 및 색인에서만 작동합니다."-이것은 잘못된 것입니다. Git stash는 개별 파일과 폴더도 숨길 수 있습니다-예 :git stash -- foo/bar.txt
— Chaoz

21

Intellij의 Shelve가 일반 Git의 숨김에 비해 갖는 한 가지 뚜렷한 이점은 Shelve를 사용하면 하나의 변경 목록에 여러 저장소에 속하는 변경 사항을 저장할 수 있다는 것입니다. 숨김을 사용하면 각 리포지토리에서 개별적으로 숨김 / 해제해야합니다. 이것은 특정 기능 작업이 여러 모듈 (따라서 여러 저장소)에 걸쳐 절단 될 수있는 여러 모듈 (각각 자체 저장소가 있음)이있는 대규모 프로젝트에서 매우 유용합니다.


0

문서가 말하는 내용은 다음과 같습니다.

변경 사항 보관은 선반과 매우 유사합니다. 유일한 차이점은 패치가 생성되고 적용되는 방식입니다. Stashe는 Git에 의해 생성되며 IntelliJ IDEA 내부 또는 외부에서 적용 할 수 있습니다. 보류 된 변경 사항이있는 패치는 IntelliJ IDEA에서 생성되며 IDE를 통해서도 적용됩니다. 또한 스 태싱에는 커밋되지 않은 모든 변경 사항이 포함되지만 변경 사항을 선반에 넣을 때 모두를 선반에 넣는 대신 로컬 변경 사항 중 일부를 선택할 수 있습니다.

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