GitHub 풀 요청을 위해 모든 커밋을 하나로 스쿼시
이 질문에 이미 답변이 있습니다.
- Git 31 답변을 사용하여 마지막 X 커밋을 함께 스쿼시
GitHub에서 pull 요청을했습니다. 이제 저장소 소유자는 모든 커밋을 하나로 스쿼시하라고 말합니다.
입력하면 git rebase -i
메모장이 다음 내용으로 열립니다.
noop
# Rebase 0b13622..0b13622 onto 0b13622
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Google에서 검색했지만 방법을 이해하지 못합니다.
다른 사람이이 솔루션을 찾는 데 도움이되는 간단한 추가 기능입니다. 스쿼시하려는 이전 커밋 수를 전달할 수 있습니다. 예를 들면
git rebase -i HEAD~3
그러면 에디터에 마지막 3 개의 커밋이 나타납니다.
좋아, 알아 냈어 ... 먼저 git rebase -i xxxxxxxxxxxxxxxx
xxxxxxxxxx가 내가 스쿼시해야 할 커밋의 SHA 인 곳 을 작성해야했습니다 . 그런 다음 메모장에서 첫 번째는 선택으로 편집하고 나머지는 스쿼시로 편집했습니다. 그런 다음 새 메모장 창이 나타나고 첫 번째 줄에 새 커밋의 이름을 입력했습니다. 그리고 나서 강제 푸시를해야했습니다.
git push --force origin master
2016 년 4 월 1 일부터 저장소 관리자는 pull 요청에서 "Squash and merge"를 선택하여 pull 요청의 모든 커밋을 단일 커밋으로 스쿼시 할 수 있습니다.
pull 요청에서 커밋을 수동으로 스쿼시하려면 fontno의 답변을 참조하십시오 .
을 시도 git rebase -i
하고 스쿼시하려는 모든 커밋에 'squash'를 사용 하십시오 .
편집하다:
git rebase -i
리베이스하는 커밋 목록이있는 대화 형 편집기가 표시됩니다. 각 커밋 이전의 기본 명령은 "pick"이므로 스쿼시하려는 모든 커밋에 대해 s / pick / squash / 만하면됩니다. 그러면 모든 커밋이 마지막 이전 커밋으로 스쿼시됩니다.
올바른 분기에서 리베이스하고 있는지 확인하십시오.
참조 URL : https://stackoverflow.com/questions/14534397/squash-all-my-commits-into-one-for-github-pull-request
'IT이야기' 카테고리의 다른 글
C 오류 : 함수에 대한 정의되지 않은 참조이지만 정의되어 있습니다. (0) | 2021.04.02 |
---|---|
Git (Hub)는 짧은 SHA에서 발생할 수 있는 충돌 처리 (0) | 2021.04.02 |
Docker Registry 2.0-사용하지 않는 이미지를 삭제하는 방법 (0) | 2021.04.01 |
kubernetes 포드의 모든 컨테이너 깔끔하게 나열하는 방법 (0) | 2021.04.01 |
Rust에서 문자열의 첫 글자를 대문자로 바꾸는 이유 (0) | 2021.04.01 |