나는이 상황에 정확히 있지만 Git의 복잡한 워크 플로우는 아니지만 약간 더 복잡한 것을 선택했습니다.
처음에 목표는 git way를 배우는 것이므로 약간의 탐구를했습니다. 그런 다음 설명한 워크 플로로 거의 되돌아갔습니다.
잠시 후 일부 상황이 발생하여 작업하기가 어려워졌고 팀에 합류하면 깨기가 어려운 나쁜 습관이 생겼습니다.
그래서 나는 다음에 정착했다.
- 작업을위한 로컬 저장소
- 애플리케이션을위한 안정적인 트렁크로서의 마스터 브랜치
- 각 기능 / 리 팩터 당 하나의 브랜치, 기본적으로 수행 할 각 상당한 크기 변경마다 하나의 브랜치
- 분기가 안정되고 모든 테스트가 통과되면 트렁크로 다시 병합됩니다.
트렁크를 동기화하는 git hub 계정도 설정했습니다. 이를 통해 다른 컴퓨터에서 쉽게 작업을 시작할 수있었습니다. 필연적으로 다른 컴퓨터에서는 사용할 수 없었던 환경과 관련된 버그를 찾을 수있었습니다. 이제 다른 "처녀"시스템에서 프로젝트를 한 번 이상 시도하는 습관을들이십시오. 고객에게 배포 할 때 많은 어려움을 겪습니다.
- github에 릴리스 할 수있는 모든 버전에 릴리스 가능 버전으로 태그를 지정합니다.
- 고객에게 릴리스되면이 버전에서 분기하여 고객이 선언 한 버그 수정에 대한 두 번째 안정적인 트렁크를 만듭니다.
처음에는 여러 가지가 과잉처럼 보였지만 실제로 많은 도움이되었습니다. 나는 지점에서 아이디어를 시작하고 잠시 동안 작업하고 서클을 시작하면 다른 지점에서 작업을 포기하고 다른 지점을 시작했습니다. 나중에 반 구운 지점으로 돌아와서이 아이디어를 탐구 할 아이디어가 나왔습니다. 이로 인해 플래시와 아이디어를 매우 빠르게 행동하고 작동하는지 확인할 수 있기 때문에 훨씬 생산성이 향상되었습니다. GIT로 지점을 전환하는 비용은 매우 낮아서 코드 기반에 매우 민첩합니다. 그것은 여전히 내 역사를 정리하기 위해 rebase 개념을 마스터해야한다고 말했지만, 나는 혼자이기 때문에 정말로 필요하다고 의심합니다. 그것을 배우기 좋은 것으로 밀어 붙였다.
모든 분기가 복잡해지면 로그 옵션을 탐색하여 변경 트리를 그리고 어느 분기가 어디에 있는지 확인했습니다.
간단히 말해 git은 SVN, CVS 또는 (brrr) TFS와 다릅니다. 분기는 매우 저렴하며 작업을 지우는 실수를하는 것은 실제로 매우 어렵습니다. 한 번만 나는 일을 잃었고 커밋을 너무 크게했기 때문입니다 (위의 나쁜 습관을보십시오). 자주 저지르면 작은 덩어리로 git이 최고의 동맹국이 될 것입니다.
저에게 git은 소스 제어가 실제로 무엇인지에 대해 마음을 열었습니다. 이전의 다른 것은 그것을 얻으려는 시도 일뿐입니다 .git은 처음으로, 제 마음에는 그것을 얻었습니다. 즉, 나는 다른 DVCS를 시도하지 않았으며 아마도이 진술이 온 가족에게 넓어 질 수 있습니다.
마지막 조언 중 하나는 명령 줄입니다. 그래픽 툴이 좋지 않다는 것은 말할 것도없고, 반대로, 명령 행으로 내려 가서 직접 시도해 보았을 때 git을 정말 싫어했습니다. 실제로 매우 포괄적 인 도움말 시스템을 사용하여 쉽게 만들 수 있습니다. 내 가장 큰 문제는 대안을 찾을 때까지 창문의 추악한 콘솔에 묶여있었습니다.
이제 Git과 Eclipse 통합을 사용하여 실시간으로 진행되는 작업을 확인하고 diff와 같은 일부 작업을 수행하고 파일의 기록을 탐색합니다. 분기, 병합, 푸시, 가져 오기 및 더 복잡한 로그 트리를위한 명령 행 . 몇 가지 기본 스크립팅과 소스 제어와 관련하여 생산성이 높지 않았으며 소스를 너무 많이 제어하지 못했습니다.
행운이 있기를 바랍니다.