풀 요청에서 태그에 따른 git 커밋 정리
Originally published @ puruvj.dev
이봐 멋진 개발자! 레포에 다음 기여를 하려고 하시나요? 엄청난. 대박! 👍
하지만 풀 리퀘스트를 하면 갑자기 아래와 같은 것을 볼 수 있습니다 👇
저게 뭐에요?! 어떻게이 일이 일어 났어요?!!
괜찮아요. 계속 읽어보세요.
Disclaimer: I'm not a git expert in any way. In fact I started using it to its full extent only 2 months back from now, in November, 2020. The explanation you read below may be (partially)incorrect, and if you find that, please inform me with a Direct Message on twitter . You'll be doing a favour to the whole community. However be assured, the commands/steps below are tested to work well, and are correct.
설명
불필요한 커밋이 포함된 지저분한 풀 리퀘스트를 제출하기 쉽습니다.
위에 보이는 사진은 제가 활발하게 작업하고 있는 오픈 소스 프로젝트에서 최근에 공개한 PR입니다. Twindle . 나는 이 PR과 관련된 커밋을 2개만 만들었지만 보시다시피 여기에는 많은 커밋(정확히 19개)이 포함됩니다. 문제는 이전 PR에서는 15개 커밋이었고 이전 PR에서는 약 13개였습니다. 보시다시피 이러한 커밋은 계속 추가됩니다. 내가 만드는 다음 PR에는 이 모든 것이 포함되고 새로운 커밋이 포함됩니다.
발생하는 이유는 2가지입니다.
단일 브랜치에서 PR 만들기
새로 만든 브랜치든 main
또는 master
이든 하나의 단일 브랜치에서 계속 PR을 만들면 이전 커밋이 계속 추가되고 각 커밋에 관련된 파일도 계속 쌓입니다.
예를 들어 파일을 2개만 변경하여 PR을 만들려고 했지만 PR에 10, 20 또는 30이 표시될 수 있습니다.
우리 별 봇의 결함
위의 사진 👆에서 볼 수 있듯이 봇의 일부 커밋도 볼 수 있습니다. 일부 리포지토리에는 일부 작업을 처리하는 자동화된 봇이 있습니다. 때때로 업스트림 리포지토리(일명 포크한 원본 리포지토리)의 변경 사항을 병합할 때 일부 봇 커밋이 포함될 수 있으며 자신의 커밋 기록을 오염시킬 수 있습니다.
If this explanation seems very incomplete or weird, is because of the fact that I don't know completely about these bot commits. Please do your own research about this if you can(and tell me too 😋).
이 밀항자 커밋을 어떻게 제거합니까?
이 명령을 실행하기만 하면 됩니다.
git checkout main
git reset --hard upstream/main
git push --force
If this explanation seems very incomplete or weird, is because of the fact that I don't know completely about these bot commits. Please do your own research about this if you can(and tell me too 😋).
이 명령을 실행하기만 하면 됩니다.
git checkout main
git reset --hard upstream/main
git push --force
git checkout main
는 main
지점으로 결제만 하면 됩니다. master
또는 기본 브랜치로 바꾸십시오. git reset --hard upstream/main
는 기본적으로 자신의 분기 커밋 기록을 업스트림의 기본 분기 기록으로 재설정합니다. 필요한 경우 upstream/main
를 upstream/master
또는 upstream/dev
또는 해당 저장소의 기본 분기로 바꾸십시오. git push --force
는 기본적으로 새 커밋 기록을 자신의 포크로 푸시합니다. --force
가 필요합니다. 이상적으로는 git이 푸시할 파일이 없으므로 오류를 표시하려고 합니다. 주의
하드 리셋은 로컬 커밋이나 변경 사항을 삭제할 수 있으므로 이 정리를 실행하지 않는 것이 좋습니다. (더러운) PR을 만들고 관리자에게 병합을 요청한 다음 메인 브랜치에서 이 프로세스를 수행합니다.
Reference
이 문제에 관하여(풀 요청에서 태그에 따른 git 커밋 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/puruvj/cleaning-up-stowaway-git-commits-in-pull-requests-2d1e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(풀 요청에서 태그에 따른 git 커밋 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/puruvj/cleaning-up-stowaway-git-commits-in-pull-requests-2d1e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)