IntelliJ의 Shelve와 Git 숨김의 차이점은 무엇입니까? 이것들은 목적과 유용성면에서 거의 동일한

IntelliJ는 자체 내장 shelve 명령뿐만 아니라 git stashes를 지원합니다. 이것들은 목적과 유용성면에서 거의 동일한 것 같습니다. 그들 사이의 차이점은 무엇입니까?



답변

IntelliJ 문서에서 :

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

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

답변

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

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

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

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


답변

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


답변

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

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