git 을 사용하다 보면 (즉, 협업 업무를 하고 있는 경우), 원격 저장소에 push하지 않고 로컬 내용에서 작업을 하는 경우가 있다.
이때, 작업 내용을 로컬에 push하기에는 애매한 데, 다른 협업자가 그 내용을 확인하고 싶을 경우에는 어떻게 해야 할까.
이러한 경우에 git에서는 diff 내용을 patch할 수 있다.
즉, 다른 내용 ( 수정한 내용 ) 을 빼내서, 다른 환경에 적용할 수 있도록 파일을 만든다고 생각하면 된다.
다음을 보자.
git diff --no-prefix > patchfile // 패치파일 생성 (patchfile 은 패치파일을 생성하고자 하는 파일명이다.) cd ~/Workspace // 패치하려고 하는 위치 patch -p0 < patchfile // 패치 적용 |
위의 단계를 거치면, 패치를 적용한 위치에 동일한 작업이 적용된 것을 확인할 수 있을 것이다.
--no-prefix 옵션 없이 패치파일을 생성한 경우에는 -p1 옵션을 사용하여 패치를 적용한다.
git diff > patchfile // 패치파일 생성 cd ~/Workspace // 패치하려고 하는 위치 patch -p1 < patchfile // 패치 적용 |
다음은 --src-prefix=<prefix> 옵션을 적용한 경우. <prefix>에는 붙일 이름이다.
git diff --src-prefix=hello > hy2 // 이러한 방법으로 hy2라는 파일을 만들었다. 파일 내용 diff --git hello2017/06/17/a.out b/2017/06/17/a.out index 2df066e..f0a1baa 100755 Binary files hello2017/06/17/a.out and b/2017/06/17/a.out differ |
보는 것처럼, source 파일명 앞에 hello라는 prefix가 붙는다.
그럼 다음으로 --dst-prefix=<prefix> 는 어떨까.
확인해보자.
git diff --dst-prefix=hello > hy3 // 이러한 방법으로 hy3라는 파일을 만들었다. 파일 내용 diff --git a/2017/06/17/a.out hello2017/06/17/a.out index 2df066e..f0a1baa 100755 Binary files a/2017/06/17/a.out and hello2017/06/17/a.out differ |
dst라는 옵션 처럼 destination 파일명에 hello라는 prefix가 붙는다.
git은 사용할수록, 알면 알수록 편함이 많은 툴인듯 싶다..
참고 내용
https://stackoverflow.com/questions/6764953/what-is-the-reason-for-the-a-b-prefixes-of-git-diff
공감 버튼은 저에게 큰 힘이 됩니다. 한번씩 꾸욱 눌러주시면 감사하겠습니다.
'프로그래밍 > etc. (Language)' 카테고리의 다른 글
[HTML] div 태그로 내용 숨기는 방법 (0) | 2018.05.25 |
---|---|
[GIT] git reset 또는 여러 명령어 취소하는 방법 (git reflog) (0) | 2018.04.24 |
Erlang 문법 정리 (2) - 원자, 리스트, 튜플, 패턴 매칭 (0) | 2018.03.14 |
Erlang 문법 정리 (1) - 주석, 변수, 표현 정리 (0) | 2018.03.11 |
Erlang 문법 정리 (0) - 우분투 Erlang 설치. (0) | 2018.03.04 |
댓글