Git Shelve vs Stash 된 작업을 제쳐 놓는 데 사용 된다면

나는 shelveGit 의 측면에 매우 익숙하지 않다 . stash미완성 된 작업을 제쳐 놓는 데 사용 된다면 무엇 shelve입니까? 무엇을 위해 사용 하시겠습니까?

예를 들어 프로젝트 업데이트 (VCS 메뉴)

하나는 얻을 것이다 (Idea 2019.2)



답변

git shelve Git에는 존재하지 않습니다.

git stash:

  • 작업 디렉토리 및 색인의 현재 상태를 기록하지만 깨끗한 작업 디렉토리로 돌아가고 싶을 때.
  • 로컬 수정 사항을 저장하고 HEAD 커밋과 일치하도록 작업 디렉토리를 되돌립니다.

브랜치에서 수정 사항을 격리하기 위해 2008 년 오래된 프로젝트 git shelve 가 있었지만 오늘날에는 그다지 유용하지 않습니다.

Intellij IDEA 쉘프 대화 상자에 설명 된대로 ” 쉘프 및 언 쉘빙 “기능 은 VCS (버전 제어 시스템 도구)에 연결되지 않고 IDE 자체에 연결되어 있으며 아직 변경 목록에 커밋하지 않은 보류중인 변경 사항을 임시로 저장합니다.

참고 힘내 2.13 (Q2 2017) 이후, 지금 너무 개별 파일을 숨길 수 있습니다 .


답변

Git과 함께 JetBrains IDE를 사용하는 경우 “선반 및 비 선반 작업 외에도 스 태싱 및 언스 트래 싱 작업이 지원됩니다. 이러한 기능은 공통점이 많으며, 주요 차이점은 패치 생성 및 적용 방식에 있습니다. 선반은 개별 파일 또는 묶음으로 작동 할 수 있습니다” Stash는 한 번에 변경된 전체 파일로만 작동 할 수 있습니다. 차이점에 대한 자세한 내용 은 다음과 같습니다 . “


답변

이전 답변 외에도 중요한 점이 있습니다.

shelveJetBrains의 제품 기능 (예이며 WebStorm, PhpStorm, PyCharm, 등). 선반 파일을 .idea/shelf디렉토리에 넣습니다 .

stashgit옵션 중 하나입니다 . 숨김 파일을 .git디렉토리에 넣습니다 .


답변

다른 곳에서 변경 사항을 공유하지 않는 경우 변경 사항을 숨기지 않고 보류하는 것을 선호합니다.

스 태싱은 git 기능이며 특정 파일을 선택하거나 파일 내부의 변경 사항을 선택할 수있는 옵션을 제공하지 않습니다. 선반은 그렇게 할 수 있지만 이것은 git 기능이 아닌 IDE 관련 기능입니다.

당신이 볼 수 있듯이 내 선반에 포함 할 파일 / 라인을 지정하도록 선택할 수 있습니다. 숨김으로 할 수는 없습니다.

IDE에서 선반을 사용하면 패치 변경 사항이 .git 폴더에 저장되지 않으므로 패치의 이식성이 제한 될 수 있습니다.

유용한 링크 :