git stash는 분기 별입니까 아니면 전체 저장소입니까?
나는 지부에 가서 몇 가지 일을했습니다. 나는 다른 지점으로 가고 싶었지만 커밋하고 싶지 않았기 때문에 그렇게했다 git stash
. 그리고 나는했다 git checkout <otherbranch>
. 나는 그곳에서 약간의 작업을했고, 첫 번째 지점에서와 마찬가지로 작업을 수행하기 전에 전환하고 싶었습니다. 그래서 나도 git stash
그곳에서 했어요 . 나는 첫 번째 지점으로 다시 전환 git stash pop
하고 특정 지점에서 숨길 것이라고 생각하여 ( ) 숨김을 해제하려고했습니다. 나는 그것이 <otherbranch>
(최신 보관함)에서 보관함을 풀었다는 것에 놀랐습니다 . stash가 분기별로 다르다는 인상을 받았지만이 동작은 전체 로컬 저장소에 대해 하나의 숨김 만 있음을 나타냅니다.
가 git stash
분기 별 또는 전체 저장소에가? 전체 저장소에 대한 것이라면 분기별로 옵션을 전달할 수 있습니까?
현재 숨김 스택을 보려면 :
git stash list
스택에서 특정 은닉 물을 선택하려면 위와 같이 참조하십시오 .stash@{number}
동작이 분기 별이되도록하려면 분기에서 커밋 (또는 여러 커밋)을 만들 수 있습니다. 나중에 언제든지 커밋을 "unmake"할 수 있습니다 (예 : with git reset
, either --soft
또는 --mixed
; git reset 문서 참조 ; 또는 git rebase -i
임시를 버리는 동안 최종 "실제"커밋 만 유지).
(실제로 에뮬레이션하려면 git stash
적어도 두 개의 커밋이 필요합니다. 하나는 인덱스 상태 용이고 다른 하나는 작업 트리 상태 용입니다.하지만 인덱스 상태를 저장하고 복원 할 계획이 없다면 git add -A
전체 작업 트리 상태 만 가능합니다. 임시 커밋에 넣습니다. 또는 git stash
쉘 스크립트이므로 기본적으로 분기별로 작동하도록 매우 쉽게 복사하고 수정할 수 있습니다. 예를 들어 단일 전역 을 사용 하는 대신 작업 이름 공간으로 사용 합니다. 전체 저장소. 명시 적으로 이름을 지정하여 한 지점에서 다른 지점으로 숨김을 가져올 수 있습니다.)refs/pb-stash/branch
refs/stash
아니요. git stash는 저장소 당입니다.
여기에 그것을 사용하는 방법에 대한 좋은 페이지입니다.
git stash
분기 별이 아닙니다.
- 대신
git stash
(줄기와 가지가 많으면 쉽게 잃을 수 있음) git commit
분기에 완료되지 않은 코드를 저장하고 코드를 완료 할 준비가되면 완료git reset ${COMMIT_HASH_VALUE}
되지 않은 코드를 다시 가져 오기 위해 a 를 수행하는 것이 좋습니다.git commit
그리고git reset
사용하는 경우 함께 정확하게 시뮬레이션 할 수 있습니다git stash
특정 지점에 대한
다음은 commit
및 reset
명령 의 값과 사용법을 보여주는 일반적인 실제 시나리오입니다 .
- 기능 브랜치 X에서 작업 중이며 코드가 테스트를 컴파일하거나 통과하지도 않습니다.
- 현재 새로운 기능보다 우선 순위가 높은 버그가 있으므로 버그 수정 작업을 즉시 시작해야합니다.
- git stash를 수행하는 것보다 (그리고 많은 stashe와 많은 분기를 가지고 있기 때문에 stash는 믹스에서 손실됩니다)
git commit
기능 브랜치 X에서 할 수 있습니다.- 아래로 쓰기
COMMIT_HASH_VALUE
에 대한 이상을
- 아래로 쓰기
- 핫픽스를위한 새 분기 Y 체크 아웃
- 분기 Y에서 핫픽스 완료 (병합 요청을 수행하여 핫픽스를 기준선으로 가져오고 핫픽스 분기를 삭제)
- 그런 다음 기능 브랜치 X를 다시 확인하십시오.
- 컴파일되지 않았거나 테스트를 통과하지 않은 미완성 작업을 표시하려면->
git reset ${COMMIT_HASH_VALUE}
(참고로 기본값 git reset
은 --mixed
)
여기의 모든 답변이 commit
+로 숨김을 에뮬레이트하도록 제안하는 이유를 잘 모르겠습니다 reset
. Stash는 특히 여러 지점에서 작업 할 때 사용하기에 완벽합니다. 또한 여러 브랜치에서 작업 할 때 커밋하고 싶지 않습니다. 돌아올 때 모든 수정 된 변경 사항이 편집기에서 강조 표시되기를 원하기 때문입니다.
따라서 다음은 숨김 워크 플로입니다.
브랜치를 전환해야하고 커밋 할 준비가되지 않은 경우 변경 사항을 스택에 저장하십시오.
git stash save "Your custom stash message"
지점으로 돌아 오면 보관함을 확인하세요.
git stash list
지점에 있다면 상단을 적용하고 보관함에서 제거 FixIssue0203
하기 git stash pop
때문에 사용할 수 있습니다 stash@{0}
.
그러나 in 브랜치 인 경우 ImproveReadme
먼저 stash 1을 적용한 git stash apply stash@{1}
다음 stack에서 stash 1을 제거 해야합니다 git stash drop stash@{1}
.
그게 다야!
'code' 카테고리의 다른 글
필터 Android가있는 사용자 정의 Listview 어댑터 (0) | 2020.11.03 |
---|---|
상대 경로를 사용하여 Webpack에서 SCSS (SASS)를 사용하여 멋진 글꼴을로드하려면 어떻게해야합니까? (0) | 2020.11.03 |
.cer 및 pfx 파일의 차이점은 무엇입니까 (0) | 2020.11.02 |
flatMap () 후 filter ()가 Java 스트림에서 "완전히"게으르지 않은 이유는 무엇입니까? (0) | 2020.11.02 |
C # 속성 및 참조 매개 변수, 왜 설탕이 없습니까? (0) | 2020.11.02 |