티스토리 뷰
● git stash : 코드 잠깐 다른 곳에 보관하기
- 쓰레기 코드를 짜버렸다.
- 이 쓰레기를 잠깐 치워놓고 개발하고 싶으면 주석 처리해도 되지만 git stash 명령어를 이용해 잠깐 코드를 치울 수 있다.
- 파일(git-stash.txt)을 하나 만든 후 commit 했다.
- 그 후에 위 사진과 같이 내용을 또 추가했다. commit은 아직 하지 않은 상태이다.
- 근데 새로 추가한 코드가 마음에 들지않는것이다. 이것을 잠깐 삭제하고 싶으면 git stash 명령어를 사용하면 된다.
git stash
git stash save "stash 내용 메모" --> git stash 할 때 메모도 함께 입력할 수도 있다.
- 위의 명령어를 터미널에 입력하면 방금 작성한 코드는 잠깐 다른 공간에 보관된다.
- 파일들은 최근 commit 상태로 되돌아간다.
- staging 여부와 상관없이 git이 추적중인 파일은 다 이동된다.
- 단, 새로 만든 파일인데 단 한 번도 staging 되지 않았다면 이동되지 않는다.(적어도 한 번은 add & commit 해야한다.)
- git stash 명렁어를 입력했더니 2번째 줄의 내용이 사라졌다.
cf) 직접 해보니 git stash 명렁어 한 번으로 여러개의 파일을 stash 할 수 있었다. 명령어 한 번에 하나의 파일만 되는건 아니었다.
git stash list
- git stash 명령어는 여러번 할 수 있다.
- 위의 명령어는 현재 stash 되어있는 코드 목록을 전부 출력해주는 명령어이다.
● 보관했던 코드 다시 불러오기
git stash pop
- 위의 명령어를 이용해 잠깐 보관했던 코드를 다시 불러올 수 있다.
- git stash 했던 코드가 여러개 있으면 가장 최근에 보관했던 코드부터 먼저 불러온다.(가장 최근에 들어온 것 부터 먼저나간다.)
- 만약 현재 코드와 겹치는 부분이 있으면 conflict가 발생한다. 이건 알아서 해결해라
● stash 관련 명령어
git stash drop 삭제할id
--> 특정 stash 삭제
--> 삭제할 id는 git stash list에서 출력되는 0, 1, 2 같은 숫자이다.
git stash clear
--> 모든 stash 삭제
git stash -p
--> 전체 말고 일부 코드만 git stash 하고 싶을 때 사용
--> 파일을 훑어주면서 stash 할 지 의견을 물어보는데 y/n 으로 대답하면 된다.
- gitstash1.txt 파일에만 y하고 gitstash2.txt 파일에는 n 했더니 gitstash1.txt의 내용만 stash에 보관됐다.
▶ 참고
- 이렇게 보면 차라리 주석 처리를 하는게 더 빠르고 좋은 것 같다. 하지만 용도가 비슷해도 git stash와 주석 처리는 차이점이 있다.
- 주석 처리된 코드는 commit 할 때 같이 반영이 되기에 주석도 commit 기록에 남아 기록이 더러워질 수 있다.
- 따라서 주석 처리한 내용을 commit 하기 싫으면 git stash를 사용하자
- 혹은 기능 A, B를 만들어야 하는데 A는 완성되었고 B는 제작 중인데 commit을 하려고 할 때 B 부분만 임시로 git stash 하는 식으로도 사용할 수 있다.
Q. 그냥 branch 새로 만들어서 거기다 코드짜놓는거랑 별반 차이 없는디?
A. 맞다. 간단히 branch 만들어서 거기 보관하는 것도 나쁘지 않은 방법이다.
'Git' 카테고리의 다른 글
#10 branch 전략 - git flow / trunk-based (1) | 2022.11.15 |
---|---|
#9 Github3 - 브랜치로 협업하기 pull request (0) | 2022.11.14 |
#8 Github2 - 타인과 협업하기 git clone, git pull (0) | 2022.11.12 |
#7 Github1 - 내 코드 올릴 때는 git push, remote repository, git ignore (0) | 2022.11.11 |
#6 git revert, reset, restore (0) | 2022.11.10 |
- Total
- Today
- Yesterday
- OS
- MySQL
- db
- SpringBoot
- Phaser3
- git
- Phaser
- MongoDB
- 빅데이터 분석기사
- 빅데이터
- node.js
- 코딩테스트
- Stream
- 코테
- jpa
- Spring Boot
- 운영체제
- SQL
- 메모리
- 프로그래머스
- 알고리즘
- Advanced Stream
- Java8
- DART
- spring
- API
- 프로세스
- java
- nosql
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |