그 때까지는 내가 준비가 병합 다시에 내 지점 (강조 광산) 개발
충돌을 다루는 git merge
것이 종종보다 간단 git rebase
합니다. Git 병합에서는 한 번에 수정 된 전체 파일 목록을 볼 수 있습니다. 다른 동료가 수행 한 커밋 수에 관계없이 한 번 병합해야합니다 . rebase 워크 플로를 사용하면 동일한 충돌이 반복되어 결국 수동으로 검토해야 할 수 있습니다. 13 번째 커밋을 수정 하면 터널에서 빛이 보이지 않는 것처럼 느껴질 수 있습니다 .
내 경험에 따르면 반복되는 리베이스 충돌을 순진하게 해결하려고 시도했을 때 누군가 수정 사항을 얻지 못하거나 컴파일조차하지 않은 응용 프로그램이 생겼습니다. 종종 저와 동료들은 많은 일을했지만 반복되는 갈등의 복잡성 때문에 압도 당하여 소수의 재 수집 커밋 후 이전 작업을 중단하고 잃어 버렸습니다.
몇 가지 기술을 제안하지만 작업을 자동화하는 것보다 병합이 더 쉬워지는 데 도움이 될 수 있습니다.
- 리소스 / 언어 파일 . 당신이있는 경우 첨가제 리소스 파일에 대한 변경 사항을 쉽게 불러올 수 있도록 항상 파일의 끝으로 이동해야합니다 당신 에 대한 변경 다른 사람 '변경. 하단에 변경 사항을 복사하여 붙여 넣거나 충돌 마커를 제거 할 수 있습니다
- 하다. 아니. 물론. 다시 포맷하십시오 . 귀 하나 귀하의 동료 개발자는 일상 업무 중에 "대량 코드 재구성"을 수행 할 수 없습니다. 코드 재 포맷은 충돌 관리에 잘못된 수의 오 탐지를 추가합니다. 코드 재 포맷 가능
- 예를 들어 자동화 도구를 사용하자마자 커밋 할 때마다 모든 개발자가 점진적으로 증가시킵니다 (예 : Eclipse에는 저장시 다시 포맷 할 수있는 옵션이 있으며 vanilla Visual Studio에는 없음). 절대적으로 모든 개발자는 IDE에서 사용하는 형식 파일로 코딩 된 동일한 코드 형식 표준을 사용해야합니다. 아이디어를 제공하기 위해 4 개의 공백 또는 2 개의 탭이면 중요하지 않지만 모든 사람이 동일한 것을 사용하는 경우 실제로 중요합니다.
- 팀 리더가 릴리스 직전에. 사람들이 브랜치에서 작업하지 않을 때, 즉 브랜치 전에 "코드 재 포맷"커밋이 발생하면 상황이 더 쉬워집니다.
- 동료 간 작업 분할을 검토 하십시오. 이것은 대부분의 엔지니어링이 오는 부분입니다. 다른 답변에서 알 수 있듯이 다른 작업을 수행하는 여러 개발자가 동일한 리소스를 터치 해야하는 경우 디자인 냄새가납니다. 각 동시 개발자가 어떤 부분을 수정해야하는지 팀 리더와상의해야 할 수도 있습니다.
또한 팀의 Git 워크 플로에서 나쁜 습관을 겪었습니다. 사람들은 종종 자신의 지사에 과도하게 헌신합니다. 필자는 개인적으로 한두 줄씩 커밋하는 "fix"라는 10 ~ 20 개의 커밋을 추가 한 개발자를 직접 목격했습니다. 우리의 정책은 커밋에 JIRA 티켓이 표시되어 아이디어를 제공하는 것입니다.
@JacobRobbins는 git rebase
일일 작업을 제안합니다 . 그의 접근 방식을 추진하고 싶습니다.
먼저 커밋 수를 줄이려면 rebase를 한 번만 사용하십시오. 그리고 원래 개발 브랜치 에만 리베이스하십시오 . 내가 소수라고 말하면, 3 또는 4 (예 : 모든 프론트 엔드, 모든 백 엔드, 모든 데이터베이스 패치) 또는 인간이 합리적인 수치를 의미 할 수 있습니다. 통합 한 후 fetch
업스트림 지점에서 리베이스를 사용 하고 작업하십시오. 팀이 자신의 접근 방식을 검토하지 않으면 갈등에서 벗어날 수는 없지만 인생의 고통을 덜어줍니다.
특정 작업에 대한 추가 질문이 있으면 언제든지 검색하여 Stackoverflow를 요청하십시오.
재 포맷 금지 및 보이 스카우트 규칙에 대한 [편집] 나는 RE- 포맷 을 약간 바꿔서 내가 의미하는 것은 당신이 만지지 않은 코드를 포함하여 전체 소스 파일을 처음부터 포맷하는 작업이라는 것을 강조했다. 완벽한 보이 스쿠 어티 인 자신의 코드를 항상 포맷하는 것과는 달리, 나 자신을 포함한 많은 개발자들이 IDE의 기능으로 전체 파일을 다시 포맷하는 데 사용됩니다. 다른 사람이 파일을 만지면 영향을받는 줄이 내용과 의미에서 변경되지 않더라도 Git은 파일을 충돌로 간주합니다. 매우 강력한 언어 인식 편집기 만이 충돌이 형식화와 관련이 있으며 최상의 형식의 조각을 자동 병합하는 것만 제안 할 수 있습니다. 그러나 나는 그러한 도구에 대한 증거가 없습니다.
결국, 보이 스카우트 규칙은 다른 사람들의 엉망을 청소하도록 요구하지 않습니다. 너만