나는 습관적인 커미터이고 나에게 맞는 것을 알았지 만 커밋 메시지는 거의 항상
Age: 9 mins [*] Working on implementing and testing PaintSystem.
Age: 17 mins [*] Working on implementing and testing PaintSystem.
Age: 37 mins [*] Working on implementing and testing PaintSystem.
Age: 52 mins [*] Working on implementing and testing PaintSystem.
따라서 내 지점 (수은)에 대한 이러한 빈번하고 습관적인 커밋을 수행하면 가장 자세한 커밋 로그를 정확히 장려했다고 말할 수는 없습니다. 예를 들어, 아내가 저에게 저녁 식사를하러 가라고 요청하면 이전의 "Working on [...]"커밋 메시지를 급히 복사하여 사용할 것입니다.
커밋 로그 패턴은 일반적으로 다음과 같습니다. "Working on [...] Working on [...] Working [...] Completed [...] Started working on [...] Working on [...] Completed [...] Started working on [...]"
반대로, 그것은 내 엉덩이를 구했습니다. 때로는 예상하지 못하고 테스트하지 않은 에지 케이스를 사용하기도합니다.
그래서 나는 최고의 습관에 대해 알지 못하고 이상적인 커밋 로깅 습관까지 듣는 것은 아니지만, 더 자주 커밋하면 회귀를 수행해야 할 때 확실히 도움이 될 수 있다고 말할 수 있습니다.
각 한 줄 변경이 커밋을 받아야합니까?
나는 한 줄 변경을 저지른 적이 있지만 일반적으로 까다로운 변경을 한 적이 있고 시간이 부족했을 수도 있습니다. 나의 커밋이 항상 완벽하고 완전한 작업 단위 또는 변경과 유사한 것은 아닙니다. 말했듯이 때로는 아내가 예기치 않게 저녁 식사를하라고 요청한 결과 일뿐입니다.
TBH 그 "Working on [...]"
로그 패턴 을 따르는 많은 커밋 은 일관된 변화 단위를 모델링하지 않고 (왜 내가보다 더 나은 메시지를 내놓을 수 "Working on [...]"
없는가) 나 자신을 커피 한 잔처럼 만드는 숨을 쉬는 결과입니다. 이 "Completed [...]"
메시지는 해당 작업 단위의 끝을 나타내며, "Started working on [...]"
작업을 시작할 때 첫 번째 유형의 메시지 와 함께 훨씬 더 자세한 메시지를 작성하는 경우가 많습니다 . 15 분마다 한 번씩 커밋을 평균하면 "Working on [...]"메시지는보다 자세한 메시지를 통해 한 번의 커밋 커밋에서 커밋 할 수있는 사람과 비슷합니다.
테스트하기 전에 커밋해야합니까 (예 : 적어도 구문 / 컴파일 오류의 경우 완전히 실행 취소해야합니다. 아이디어가 작동하지 않거나 메시지가 거짓말이기 때문에)?
때로는 테스트를 실행하기 전에 (예기치 않은 이벤트가있는 경우) 계속 진행합니다. 또한 솔로이지만 CI를 수행하는 서버 (LAN에서 집에서 실행되는 서버)로 푸시합니다. 그것은 지나친 것처럼 보이지만 몰라, 나는 이전 직장에서 그것에 기대어 익숙해졌습니다. 또한 매번 모든 단위 및 통합 테스트를 수동으로 실행해야하는 번거 로움이 없습니다. 나는 모든 것을 밀어 붙이는 것을 좋아합니다. 테스트가 실패하면 회귀를 수행하는 최신 방식으로 작업하고 최신 개정판에서 실수를 수정 한 후 계속 진행하기가 쉽습니다. 그건 내가 적어도 이렇게 말했다 빌드 내가 커밋하기 전에 디버그 빌드에 대해 코드를.
저녁 식사가 아직 신선하면서 저녁 식사를하기 전에 매일 아침 / 오후에 커밋해야합니까?
나는 나가기 전에 커밋하고 프로그래밍 사이에 휴식이 있습니다. 나는이 질문에 직면 할 때까지 정확히 왜 많은 생각을하지 않았습니다. 나는 그것이 내가 다른 곳으로 갈 수있는 곳 대신에 커밋 로그없이 내가 떠났던 곳을 집어 들지 못하게하는 것이라고 가정한다. 흠, 나는 얼마나 자주 커밋하는지 이론적으로 필요하지 않기 때문에 당신에게 다시 연락해야합니다. 나는 어떤 이유로 든 컴퓨터를 떠나기 전에 여전히 커밋하고 밀어 붙는 것이 더 편하다고 생각합니다. 예를 들어, 이전의 심리적 두려움은 SVN을 사용하던 시절에 컴퓨터를 나가고 난 후 프로젝트 관리자가 다시 목을 숨기지 않고 몇 주 동안 갈 때 프로젝트 관리자가 목을 숨기지 않고 가능한 한 자주 코드를 확인하도록 상기시켜줍니다. 우리의 코드는 회사의 재산입니다. 또한 나가는 동안 CI 프로세스가 모든 테스트를 실행하여 돌아와서 결과를 볼 수 있도록 특히 밀어 넣기가 조금 더 효율적입니다.
아 그리고 때때로 나는 떠난 후에 약간 취하게되는데, 일반적으로 취한 상태에서 복잡한 코드를 작성하는 것은 좋지 않은 생각입니다. (항상 그런 것은 아닙니다. 그러나 나는 단지 6 개의 맥주를 좋아했고 코딩하기가 그렇게 복잡하지 않았습니다). 나는 그렇게하려고하면 내가 대신 포인트처럼 읽을 수있는 로그를 커밋의 나되는 냉정한 코드로 술에 취해 코드를 혼합으로 다시 되돌릴 떠나기 전에, 적어도 나는 진지하게 작성된 코드를 최선을 다하고, "Reverting back to code written before Jagermeister shots."
나는이 작업을 수행하지 않습니다 술에 취한 코드 영감을 얻지 않는 한 매우 빈번하지만 드문 경우에 나가서 술에 취하기 전에 무언가를 저지르는 것이 실제로 도움이되었습니다.