git에서 여러 숨김을 결합하는 방법
이것은 frontend
지난 2 주 동안 분기에 대한 파이프 라인입니다 .
| Stash@{3}
이후의 모든 코드는 Stash@{1}
(두 개의 작은 커밋 제외)
| 작은 커밋
| 작은 커밋
| 2 주 전에 대규모 커밋을 수행했지만 이제는Stash@{1}
내 작업 트리는 현재 깨끗합니다.
Stash@{1}
2 주 전에 일반 개발 코드를 대량 커밋 한 내용입니다 (처음에 숨겨져 있어야 함). 이 커밋은 취소되고 숨김으로 이동되었습니다. (커밋 된 몇 가지 변경 사항을 뺀)
Stash@{3}
이후 해당 트리에 대한 최신 작업입니다 Stash@{1}
.
이 거대한 작업 풀에서 여러 커밋을 만들 수 있도록 작업 트리에서이 두 가지 보관함을 결합해야합니다.
나는 git stash apply stash@{1}
다음 시도했다.
git stash apply stash@{3}
git stash show -p | git stash apply stash@{3}
하지만 두 경우 모두 '더러운 작업 트리'를 얻습니다. 이 작업을 어떻게 병합 할 수 있습니까? stash@{3}
최신 버전 이기 때문에 stash@{1}
충돌이있는 모든 곳 을 대체하기를 원합니다 .
작업 트리에서 수정 된 파일과 충돌이없는 경우에만 숨김을 적용 할 수 있으므로 먼저에 수정 된 파일이 없는지 확인하고 파일이있는 git status
경우 커밋합니다. 다음을 수행하십시오.
git stash apply stash@{1}
git commit -a
# Enter your commit message
git stash apply stash@{3}
그런 다음 새 커밋을 만들거나 이전 커밋을 수정하여 결합 할 수 있습니다. 각 적용 후 병합 충돌을 해결해야 할 수 있습니다.
또한, 당신이 이제까지 사용하기로 결정하는 경우 git stash pop
보다는 apply
참고 stash@{3}
가 될 stash@{2}
첫 번째 전원이 터진 이후.
약간 관련이 있지만 거의 항상 작동합니다.
첫 번째 은닉처 팝
$ git stash pop
첫 번째 숨김의 변경 사항을 일시적으로 커밋
$ git add . && git commit -am 'WIP'
두 번째 은닉처 팝
$ git stash pop
임시 커밋을 실행 취소하고 도입 된 변경 사항을 유지합니다.
$ git reset --soft HEAD^
더 좋은 방법은 각각을 사용 git stash show -p stash@{whatever} > stash-{whatever}.diff
하고 사용 git apply
하는 것입니다.
비슷한 문제가 있었고 이렇게 해결했습니다.
git stash pop
스테이시 중 하나를 적용하는 데 사용 합니다. 그런 다음이 숨김의 패치를 git diff -p > ../stash.diff
. 그런 다음 작업 트리를 재설정 (또는 변경 사항을 다시 숨김)하고 다른 숨김을 git stash pop stash@{1}
. 이 시점에서 패치를 적용하면 두 개의 다른 보관함을 '병합'할 수 있습니다.
해결해야 할 충돌이있을 수 있습니다. 모든 것이 잘되면 숨겨진 변경 사항을 삭제할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/9143865/how-to-combine-multiple-stashes-in-git
'code' 카테고리의 다른 글
수직 스크롤바 숨기기 (0) | 2020.12.14 |
---|---|
Eclipse 유효성 검사 오류 "문서에 대한 문법 제약이 감지되지 않음"을 수정하는 방법은 무엇입니까? (0) | 2020.12.14 |
IntelliJ를 사용하여 두 개의 임의 파일 비교 (0) | 2020.12.14 |
#temptable과 ## TempTable의 차이점은 무엇입니까? (0) | 2020.12.13 |
C ++ 11에 void 포인터 비교에 대한 이상한 절이 포함 된 이유는 무엇입니까? (0) | 2020.12.13 |