이 규칙에 동의하지 않으며 Mason Wheeler의 말에 동의합니다 . 몇 가지 아이디어를 추가하고 싶습니다.
나는 커밋 할 의미있는 변화가있을 때마다 커밋하려고합니다. 몇 가지 작은 버그를 수정하면 하루에 여러 번, 나머지는 사용할 수없는 더 큰 소프트웨어를 작업하는 경우 일주일에 한 번이 될 수 있습니다 코드가 일관된 상태에 도달 할 때까지 의미있는 방식으로 코드를 작성합니다.
또한, 나는 해석 투입 으로 의미있는 개정 게시 코드베이스에 새로운 기능을 기여하고있다. 다른 개발자가 개정 내역을 볼 때 변경의 의미와 목적을 이해할 수 있도록 커밋하기 전에 코드를 정리해야한다고 생각합니다. 다른 개발자가 기록에서 볼 수있는 변경 사항이 적을수록 좋습니다. 개정 기록을 볼 때 의미있는 기능을 추가하는 증분을보고 싶습니다. 나는 각 개발자가 솔루션에 도달하기 전에 시도해보고 싶었던 작은 아이디어에 관심이 없습니다.
또한 SVN 서버 (또는 모든 버전 제어 시스템)를 코드의 현재 스냅 샷이 커밋 된 (컴파일 된 경우) 백업 기능으로 사용하는 것이 좋지 않다고 생각합니다 .USB 스틱을 사용할 수 있습니다 또는 컴퓨터가 고장날 때 코드가 손실되지 않도록 현재 코드를 미러링하는 외부 USB 드라이브 또는 네트워크 디스크. 개정 관리와 데이터 백업은 서로 다른 두 가지입니다. 개정판을 게시하는 것은
코드 의 스냅 샷 을 저장하는 것과 다릅니다 .
마지막으로, 나는 때때로 커밋하는 것이 문제가 아니라고 생각합니다 (즉, 코드의 현재 상태에 실제로 만족할 때만) 그리고 병합 충돌을 피하는 것은 종종 커밋에 대한 좋은 정당화가 아닙니다. 여러 사람이 같은 파일에서 동시에 작업 할 때 많은 병합 충돌이 발생하며 이는 나쁜 습관입니다 (예 : 이 기사 , 포인트 7 참조). 프로젝트를 명확한 인터페이스와 가능한 적은 종속성을 가진 모듈로 분할하고 개발자의 작업을 조정하여 작업 코드가 가능한 한 겹치도록하여 병합 충돌을 줄여야합니다.
그냥 내 2 센트.
편집하다
조기 커밋에 반대하는 또 다른 이유는 (매우) 버기 버전을 테스트 할 수 없기 때문입니다. 트렁크에서 커밋하고 테스트 팀이 매일 테스트하는 경우 몇 시간 동안 (또는 하루 동안) 테스트 가능한 버전이 없을 수 있습니다. 버그를 수정하지 않고 변경 사항을 되돌리려 고해도 다시 작성하는 데 몇 시간이 걸릴 수 있습니다. 예를 들어, 5 명의 테스터가 팀에서 일하는 동안 비 활동으로 인해 팀 시간의 5 x 2 = 10 시간을 낭비했습니다. 그것은 한 번 일어 났으므로 가능한 빨리 커밋 이름으로 조기 커밋을 피하려고 합니다 .