2021년 3월 14일 일요일

[git] git stash의 내용 patch 만들어 다른 pc에 적용 방법

// stash되어 있는 내용 확인.
git stash list


-----------------------------------------
// stash 선택 하여 patch 파일 만들기.
git stash show -p stash@{0} > cug.patch
-----------------------------------------
// patch파일을 적용할 폴더로 이동 cp cug.patch ../main-app/


-----------------------------------------
// patch파일 적용.
patch -p1 < cug.patch
-----------------------------------------


// patch 결과 미리 확인
patch -p1 --dry-run < cug.patch


// patch 되돌리기
patch -R -p1 < cug.patch

patch 옵션 -p[number], --strip[=number] 패스명의 제거 카운트(strip count)를 설정합니다. 패치 작성자와 다른 디렉토리에 파일을 두고 있는 경우, 패치 파일중의 패스명을 어떻게 해석하는지를 지시합니다. 제거 카운트는, 패스명의 선두로부터 몇개의 slash(/)를 제거하는지를 지정하는 것입니다(그 사이에 있는 디렉토리명도 제거됩니다). 예를 들면, 패치 파일중의 파일명이 /u/howard/src/blurfl/blurfl.c 에서 만났을 경우, -p 혹은 -p0 옵션을 지정하면, 패스명은 전혀 수정되지 않습니다.
-p1 을 지정하면, 최초의 slash(/)가 없습니다. u/howard/src/blurfl/blurfl.c
-p4 을 지정하면 blurfl/blurfl.c 그리고 -p 을 지정하지 않으면 "blurfl.c" 됩니다. 다만, 그 전의 패스(u/howard/src/blurfl)가 상대 패스로 해서 존재하는 경우는 별개로, 그 경우, 패스명 전체는 무수정인 채입니다. 마지막으로, 이렇게 해 얻을 수 있던 파일을, 커런트 디렉토리 혹은 -d 옵션으로 지정한 디렉토리내에서 찾습니다.