programing tip

숨겨둔 내용으로 패치를 포맷하는 방법

itbloger 2020. 7. 11. 10:55
반응형

숨겨둔 내용으로 패치를 포맷하는 방법


자식에서는 변경 사항을 숨 깁니다. 숨겨둔 부분으로 패치를 만들 수 있습니까? 그리고 그 패치를 다른 저장소 (제 동료)에 적용 하시겠습니까?

나는 'git format-patch -1'을 알고 있지만 그것이 내가 저지른 것이라고 생각합니다. 그러나 나는 숨겨둔 변화에 대해 같은 것을 찾고 있습니까?

다른 저장소에 패치를 어떻게 적용 할 수 있습니까?


물론, git stash show이것을 지원합니다 :

git stash show -p

이 답변은 패치를 저장하고 사용하려는 곳에 적용하는 방법에 대한 정보를 제공합니다.

파일에서 출력을 숨기려면 다음을 수행하십시오.

 git stash show -p --color=never > my-patch-name.patch

패치가 양호한 지 확인하십시오.

git apply --stat my-patch-name.patch

오류가 없는지 확인하십시오.

git apply --check my-patch-name.patch

패치 적용

git apply my-patch-name.patch

사용하다

$> git stash list
stash@{0}: WIP on master: 84fx31c Merged with change to /public/
stash@{1}: WIP on master: 463yf85 FlupResource: also takes json as a query parameter

최근에 보관 한 물건의 목록을 얻을 수 있습니다. Git은 실제로 숨길 때 커밋 객체를 만듭니다.

그들은 다른 모든 것처럼 커밋됩니다. 지점에서 확인할 수 있습니다.

$> git checkout -b with_stash stash@{0}

그런 다음이 지점을 게시하면 동료가 해당 커밋을 병합 또는 체리 픽 (pick-pick) 할 수 있습니다.


위의 솔루션은 이진 데이터에는 작동하지 않습니다. 다음은 이에 대한 지원을 추가합니다.

git stash show stash@{0} -p --binary

편집하다

참고 : 위의 답변에 의견을 추가하고 싶었지만 평판이 충분하지 않습니다.


나는 이것이 최근 Git의 추론 중 하나 일 것이라고 생각합니다. 더 이상 숨겨둔 변경 사항을 패치하지 않아도됩니다. 한 지점의 숨김 변경 사항을 다른 지점에 적용하면됩니다.

지점 A에서 stash @ {1}이라고하는 일부 변경 사항을 숨겼습니다.

이제 지점 B로 전환하면됩니다.

$git stash apply stash@{1}

이것은 분기 A 변경 사항을 분기 B에 적용합니다.

참고 URL : https://stackoverflow.com/questions/2160638/how-can-i-format-patch-with-what-i-stash-away

반응형