development

git push : 마지막 커밋을 제외한 모든 커밋 푸시

big-blog 2020. 12. 8. 18:56
반응형

git push : 마지막 커밋을 제외한 모든 커밋 푸시


가장 최근의 것을 제외한 모든 로컬 커밋을 원격 저장소로 푸시하는 방법이 있습니까? 수정해야 할 경우를 대비하여 마지막 항목을 로컬에 보관하고 싶습니다.


이것을 시도하십시오 ( master지점으로 작업하고 리모컨이이라고 가정 origin).

git push origin HEAD^:master

HEAD^현재 분기에서 마지막 커밋 이전의 커밋을 가리 키므로 (마지막 커밋은라고도 함 HEAD)이 명령은이 커밋 (모든 이전 커밋 포함)을 원격 origin/master분기로 푸시합니다 .

관심 있는 경우이 매뉴얼 페이지 에서 개정판 지정에 대한 자세한 정보를 찾을 수 있습니다 .

업데이트 : 그게 사실인지 의심 스럽지만 어쨌든 마지막 커밋이 병합 인 경우 해당 명령에주의해야합니다. 병합 커밋을 사용하면 HEAD HEAD^해당 커밋의 첫 HEAD^2번째 부모, 두 번째 부모 등을 참조합니다.


push특정 커밋까지 작동하는보다 일반적인 접근 방식 은 커밋 해시를 지정하는 것입니다.

git push <remote> <commit hash>:<branch>

예를 들어 다음과 같은 커밋이있는 경우 :
111111 < -first commit
222222
333333
444444
555555
666666 <-last commit

git push origin 555555:master

.. 마지막 커밋을 제외한 모든 것을 원격 master브랜치에 푸시합니다.

git push origin 333333:myOtherBranch  

.. 333333원격 브랜치 까지 커밋을 푸시 합니다.myOtherBranch


또 다른 가능성은

git reset --soft HEAD^

가장 최근 커밋을 해제하고 변경 사항을 staged로 이동합니다. 그런 다음

git push

나머지 커밋 만 푸시합니다. 이렇게하면 git log밀기 전에 무엇을 밀지 (를 통해 ) 볼 수 있습니다 .

참고 URL : https://stackoverflow.com/questions/8879375/git-push-push-all-commits-except-the-last-one

반응형