Git에서 커밋 그룹을 하나로 축소
나는 엄청난 수의 작은 커밋을 만드는 습관이 있으며 괜찮습니다. 그러나 나는 때때로 이러한 선형 커밋을 여러 개 가져 와서 새 커밋 메시지를 작성할 수있는 하나의 커밋으로 함께 축소하고 싶습니다.
나는 문서를 살펴 봤지만 나에게 약간의 비밀스러워 보였다. 아무도 그 방법을 알고 있습니까?
commit까지 (포함하지 않음) 되돌아가는 트리의 히스토리를 다시 작성한다고 가정 해보십시오 a739b0d
.
export EDITOR=vim # or your favorite editor
git rebase a739b0d --interactive
먼저 대화 형 리베이스 에 대해 읽어보십시오 .
기존 커밋 메시지를 유지하는 데 신경 쓰지 않는다고 가정하면 사용할 수있는 멋지고 빠른 git 레시피가 있습니다. 먼저 브랜치가 체크 아웃되었는지 확인하세요.
git checkout <branch-to-squash>
안전을 위해 현재 커밋에 태그를 지정합니다.
git tag my-branch-backup
다음으로, 브랜치 HEAD를 작업 공간이나 인덱스를 수정하지 않고 마지막으로 좋은 커밋으로 다시 이동합니다. 편집 : 마지막 좋은 커밋은 유지하려는 분기의 가장 최근 커밋입니다.
git reset --soft <last-good-commit>
를 사용하면 git status
기능 브랜치의 모든 변경 사항이 이제 준비되었음을 알 수 있습니다. 남은 일은 ...
git commit
이 방법은 길고 복잡한 git 히스토리와 gnarly merge를 통합하는 데 유용합니다. 또한 해결해야 할 병합 / 리베이스 충돌이 없습니다!
이제 기존 커밋 메시지를 유지하거나 위에서 허용하는 것보다 더 멋진 작업을 수행해야하는 경우 git rebase --interactive
.
솔루션 파생 : http://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit
참조 : http://git-scm.com/docs/git-reset
참조 : http://git-scm.com/docs/git-rebase
명령을 사용하여 마지막 안정적 커밋의 SHA입니다.git rebase -i <commit>
<commit>
대화 형 rebase 명령에 대한 인수로 포함 pick
했기 때문에 각 커밋 옆에 있는 레이블 을 바꿀 수있는 편집기로 이동합니다 <commit>
. 명령에 당신은에 무너 시작 바꾸려 pick
으로 reword
, 각 당신이 그것으로 붕괴하고자하는 그 후 커밋에 대한 교체 pick
와 함께 fixup
. 저장하면 새 커밋 메시지를 제공 할 수 있습니다.
다음을 사용하여 원하는 수의 커밋을 하나의 커밋으로 스쿼시 할 수 있습니다.
git rebase --interactive <commit>
참고 URL : https://stackoverflow.com/questions/6884022/collapsing-a-group-of-commits-into-one-on-git
'Programing' 카테고리의 다른 글
모델 및 ViewDataDictionary가있는 asp mvc 부분-ViewDataDictionary에 어떻게 액세스합니까? (0) | 2020.11.24 |
---|---|
출력 파일을 열 수 없습니다. 권한이 거부되었습니다. (0) | 2020.11.24 |
자바 스크립트 객체 감지 : 도트 구문 대 'in'키워드 (0) | 2020.11.24 |
항상 힙 정렬을 사용하지 않는 이유 (0) | 2020.11.24 |
Xcode의 "불완전한 구현"경고 (0) | 2020.11.24 |