얼마나 자주 소스 제어 변경 사항을 커밋해야합니까? 모든 작은 기능 이후 또는 큰 기능에만 적용됩니까?
프로젝트를 진행 중이며 장기적으로 구현할 기능이 있습니다. 현재, 나는 모든 작업 덩어리, 즉 모든 하위 기능이 구현되고 버그가 수정 된 후에 커밋하고 있습니다. 버그를 발견 한 후 일부 기능에 대한 새로운 테스트 덩어리를 추가 한 후에도 커밋합니다.
그러나이 패턴이 걱정됩니다. 생산적인 작업 일에 10 번 커밋을 할 수 있습니다. Subversion을 사용하고 있다고 가정하면 이러한 커밋은 전체 저장소에 영향을 미치므로 실제로 많은 것을 만드는 것이 좋은 방법인지 궁금합니다.
답변
컴파일하고 실행하는 코드의 “완전한 생각”을 완료 할 때마다 체크인합니다. 일반적으로 15-60 분 사이입니다. 때로는 더 길어질 수 있지만 실패 할 때 다시 작성하고 싶지 않은 많은 코드 변경 사항이 있으면 항상 체크인하려고합니다. 또한 일반적으로 코드가 컴파일되고 집에 가기 전에 근무일이 끝날 때 체크인합니다.
“너무 많은”커밋 / 체크인을 걱정할 필요가 없습니다. 무언가를 다시 써야 할 때 정말 짜증납니다. 경우에 따라 조금씩 롤백 할 수있어서 좋습니다.
답변
“커밋이 전체 리포지토리에 영향을 준다”고 우려하는 경우 — 전체 리포지토리의 개정 번호가 증가한다는 사실을 언급하고 있습니까? Subversion이 저장하는 데 사용하는 비트 수를 모르지만 개정 번호가 부족하지 않을 것이라고 확신합니다! 많은 커밋은 문제가되지 않습니다. 당신은 옆집 사람보다 10 배 자주 커밋 할 수 있으며 탄소 발자국을 전혀 늘리지 않을 것입니다.
하나의 함수 또는 메소드의 이름을 지정해야하며 이름이 너무 길면 너무 많이 수행됩니다. 체크인에 동일한 규칙을 적용하려고합니다. 체크인 주석은 변경 내용을 정확하게 설명해야하며 주석이 너무 길면 한 번에 너무 많이 변경 될 수 있습니다.
답변
나는 Jeff Atwood의이 작은 기사를 좋아한다 : 일찍 체크인, 종종 체크인
답변
나는 개인적으로 완료 / 안정 / 컴파일 된 모든 논리적 코드 그룹을 커밋하고 그날 내가 한 일을 저 지르지 않고 하루를 떠나지 않으려 고 노력합니다.
답변
주요 변경 사항을 작성 중이고 코드 작업을하는 다른 사람에게 영향을 줄 우려가있는 경우 새 분기를 만든 다음 변경이 완료된 후 트렁크로 다시 병합 할 수 있습니다.
답변
나는 작업이 끝날 때마다 커밋합니다. 보통 30 분에서 1 시간이 걸립니다.
답변
버전 관리 설명이 한두 문장보다 긴 경우에는 자주 커밋하지 않을 수 있습니다.