깨끗한 git 커밋 기록을 유지하기 위한 팁
2898 단어 beginnersgitprogramming
솔루션 1:
기능에 대해 작업 중이고 마스터에서 체크아웃하여 기능 분기 F1을 생성했다고 가정해 보겠습니다. 기능 브랜치 F1 에서 작업하는 동안 여러 중간 커밋을 만들었습니다. 그러나 커밋 기록을 확인하면 이러한 커밋 중 일부가 중복됨을 알 수 있습니다. 이 경우 커밋을 스쿼시할 수 있습니다. 즉, 여러 커밋을 결합하여 하나의 커밋으로 만들 수 있습니다.
아래는 스쿼시 전후의 기능 분기 커밋 기록입니다.
대화식 리베이스를 사용하여 마지막 X 커밋을 스쿼시하는 명령은 다음과 같습니다.
git rebase -i HEAD~[X]
커밋 스쿼시는 기능 브랜치를 마스터 브랜치에 병합하려는 경우에도 유용합니다. 스쿼싱을 통해 모든 중복 커밋을 제거할 수 있으며 기능 브랜치를 마스터에 병합한 후 git 커밋 기록이 깨끗해집니다.
스쿼싱의 장점:
자식 기록은 깨끗하게 유지됩니다
스쿼싱의 단점:
자세한 분기 기록은 더 이상 사용할 수 없습니다.
두 번째 솔루션으로 이동하기 전에 git merge와 git rebase의 차이점을 이해합시다.
자식 병합 VS 자식 리베이스
git merge와 git rebase는 기능 브랜치에서 메인(마스터) 브랜치로 코드를 병합하는 데 사용됩니다.
자식 병합
git merge 명령을 사용하여 기능 브랜치에서 마스터로 코드를 병합하면 git은 내 기능 브랜치의 모든 변경 사항을 가져오고 내 커밋 위에 내 기능의 모든 변경 사항을 포함하는 병합 커밋이라는 특수 커밋을 만듭니다. 분기하고 이 병합 커밋을 마스터 분기 위에 놓습니다. git commit 그래프는 다음과 같습니다.
마스터 브랜치에서 fetaure_branch를 병합하는 명령은 다음과 같습니다.
git checkout master
git merge feature_branch
솔루션 2로 git rebase를 이해하자
해결 방법 2:
깨끗한 커밋 기록을 유지하려면 git merge 대신 git rebase를 수행하십시오. rebase가 할 일은 기능 브랜치에서 모든 커밋을 가져 와서 마스터 커밋 위로 이동하는 것입니다. 커밋의 그래프 구조는 다음과 같습니다.
마스터 분기로 fetaure_branch를 리베이스하는 명령은 다음과 같습니다.
git checkout master
git rebase feature_branch
git rebase의 장점 :
메인 브랜치의 커밋 히스토리를 깨끗하게 유지하므로 추적이 쉬워집니다.
git rebase의 단점 :
자세한 분기 기록은 더 이상 사용할 수 없습니다.
따라서 커밋 스쿼시를 사용한 다음 마스터로 리베이스하면 커밋 기록을 깨끗하고 추적 가능하게 유지할 수 있습니다.
Reference
이 문제에 관하여(깨끗한 git 커밋 기록을 유지하기 위한 팁), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ruchivora/tips-to-maintain-clean-git-commit-history-18p0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)