스택큐힙리스트

Git 스태시를 이름으로 지정하고 검색하는 방법은 무엇인가요? 본문

카테고리 없음

Git 스태시를 이름으로 지정하고 검색하는 방법은 무엇인가요?

스택큐힙리스트 2023. 3. 23. 08:01
반응형

이름이 있는 스태시를 저장/적용하는 방법은 어떻게 되나요? git stash list에서 인덱스 번호를 찾아보지 않고 싶습니다. git stash save my_stash_name를 시도해봤지만, 그것은 스태시 설명만 변경하고, 해당 git apply my_stash_name는 작동하지 않습니다.

답변 1

메시지가 포함된 스태시를 저장하려면:

git stash push -m my_stash_name

대신 (v2.16 이후로 사용되지 않음):

git stash save my_stash_name

스태시를 나열하려면:

git stash list

모든 스태시들은 스택에 저장됩니다.

n 스태시를 팝하십시오 (즉, 적용하고 삭제하십시오):

git stash pop stash@{n}

이름으로 스태시를 팝(적용 및 삭제)하는 것은 git stash pop (각주1 참조)로는 불가능합니다.

n 를 적용하기 위해:

git stash apply stash@{n}

이름으로 스태시를 적용하려면 :

git stash apply stash^{/my_stash_name}

주석-1:

man git-stash 섹션에서 apply 관련 사항을 확인하세요.

팝과는 달리 stash push나 stash create로 만들어진 커밋과 유사한 모든 커밋이 될 수 있습니다.

가능한 해결 방법 (git 버전 2.27 및 2.31에서 테스트 완료) :

git stash pop $(git stash list --pretty='%gd %s'|grep my_stash_name|head -1|gawk '{print $1}')

답변 2

Git 스태시란 깃의 기능 중 하나로서 현재 작업 중인 변경 사항들을 임시로 저장하는 기능입니다. 그러나, 깃 스태시를 저장할 때마다 기본적으로 이름이 지정되지 않으며, 다음과 같이 임의로 생성됩니다.

```

git stash save message

```

그렇다면 이름이 지정되지 않는 스태시를 저장하면 나중에 어떻게 검색해야 할까요? Git은 스태시를 검색하기 위한 몇 가지 옵션을 제공합니다. 그 중 하나는 `git stash list` 입니다. 이 명령을 사용하면 현재 리포지토리에 저장된 모든 스태시를 확인할 수 있습니다.

```

$ git stash list

stash@{0}: On master: message

stash@{1}: On master: another message

```

위의 결과에서 볼 수 있듯이, 각 스태시의 기본 이름은 `stash@{n}`으로 지정됩니다. n은 해당 스태시가 만들어진 순서입니다. 이 경우 첫 번째 스태시는 `stash@{0}`으로 생성되고 두 번째 스태시는 `stash@{1}`으로 생성됩니다.

그러나 변경 사항을 임시로 저장할 때 스태시의 이름을 지정하면 훨씬 편리합니다. 다음 명령어로 스태시 이름을 설정할 수 있습니다.

```

git stash save message — -include-untracked — -patch stash-name

```

위의 명령어에서 stash-name은 생성할 스태시의 이름입니다. 이렇게 하면 나중에 해당 스태시를 검색하거나 사용하는 데 더욱 용이합니다.

예를 들어, 다음과 같이 `git stash apply` 명령어를 사용하여 이전에 지정한 이름으로 스태시를 검색할 수 있습니다.

```

$ git stash apply stash-name

```

이렇게하면 해당 스태시가 적용되며, 변경 사항이 복원됩니다. 따라서 이름 지정은 스태시 기능을 더욱 유용하게 사용하는 데 도움이 됩니다.

반응형
Comments