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.