GIT를 사용할 때 코드 검토에 가장 적합한 프로세스는 무엇입니까? 외부 GIT 공급자 (Unfuddle)가 있고 리소스 사용량에 제한이 있습니다. 따라서 모든 개발자에 대한 전용 원격 저장소를 가질 수는 없습니다.

현재 프로세스 :

  • 우리는 모든 사람이 커밋하는 master 분기가있는 GIT 서버가 있습니다.
  • 개발자가 로컬 master 미러 또는 로컬 기능 브랜치
  • 개발자는 서버의 master 브랜치로 푸시
  • 개발자는 마지막 커밋에 대한 코드 검토 요청

문제 :

  • 코드 검토의 모든 버그는 발견 될 때까지 이미 마스터 상태입니다.
  • 아니면 일반적으로 누군가가 몇 시간 동안 노력을 기울이고 있습니다. 무슨 일이 있었는지 알아 내려면 …

그래서 우리는

  • “마스터”에게 전달하기 전에 코드 검토를 수행하고 싶습니다.
  • 글로벌 팀과 함께 작동하는 프로세스가 있어야합니다 ( 어깨에 걸친 검토 없음!)
  • 개별 개발자가 자신의 책상 / 컴퓨터에있을 필요가없는 것 다른 사람이 원격으로 i n (인간 의존성 제거, 개발자는 다른 시간대에 집으로 이동)

우리는 TortoiseGIT를 사용하여 변경된 파일 목록, 다른 파일 등을 시각적으로 표현합니다. GUI가 충분하지 않지만 이상적으로는 워크 플로가 단순하고 GUI 기반이 되었으면하는 GIT 셸 (개발자가 아닌 도구가 부담을 덜어주기를 원합니다)

댓글

  • 커밋하기 전에 단위 테스트를 하시나요?
  • @GuyCoder : 대부분 가능합니다.
  • 호스트가 코드 리뷰를 제공하지 않는 경우 능력, 더 나은 호스트를 얻으십시오. Gerrit를 살펴보고이를 제공하는 호스트를 찾을 수 있는지 확인하십시오.

Answer

A 간단하지만 효과적인 모델은 GitHub pull request 모델입니다. 여기에서 기여자는 “please merge in my code”요청을 제출합니다. 관리자는 변경 세트를 검토하고 더 많은 작업이 필요한지 또는 병합에 적합한 지 결정합니다. 그런 다음 마스터 브랜치로 병합 할 수 있습니다. 커미터는 일반적으로 마스터 브랜치로 직접 푸시 할 수 없습니다 (사용자의 취향에 맞게 사용자 정의 할 수 있으며 “마이너”커밋이 직접 들어갈 수 있음).

댓글

  • 전 세계적으로 7 명의 전문 개발자 (익명 기여자 대)로 구성된 긴밀한 팀이 있으므로 각 개발자가 원격 마스터에게 직접 푸시 할 수 있습니다. ' 링크 + 소개 대 내가 선호하는 독립형 답변이지만이 경우에는 의미가 있습니다. 링크에 대단한 글을 남겨 주셔서 감사합니다!
  • @Sid 3 명으로 구성된 팀이 있으면 ' 모두가 마스터로 밀려 나지 않을 것입니다.
  • Pull 요청은 Rhodecode 및 Atlassian Stash에서도 사용할 수 있습니다.
  • @Andrew : 왜 안 되죠? 초크 포인트를 통해 전체 팀 작업을 퍼널 링하여 생성 될 수있는 많은 문제가 있습니다. 이것들은 모두 완화 될 수 있지만 단일 지점 명령 및 제어 구조는 다른 상황보다 일부 상황에 더 적합합니다.

답변

Git은 분산 된 버전 제어 시스템입니다. “하나의 브랜치가있는 저장소가 하나만있는 것은 아닙니다!

여러 저장소를 설정할 수 있습니다 (각 개발자에 대해 하나씩) 및 마스터 저장소 인 다른 저장소를 설정할 수 있습니다. 브랜치 중 하나가 병합 될 준비가되면 개발자는 병합을 요청하고 변경 사항은 브랜치 / 리포지토리에서 마스터로 가져옵니다.

그 병합이 실제로 발생하기 전에 검토자는 변경 사항을 다음으로 가져올 수 있습니다. 추가 된 이점은 개발자가 원하는만큼의 브랜치를 가질 수 있다는 것입니다. 서로의 더러운 세탁물을 그렇게 많이 볼 수 있습니다.


또한 용어를 배우십시오. “Devs commit to server”s master branch “는 그들이 경 사항을 마스터로 푸시 하시겠습니까 ?

댓글

  • 예, push 그들의 일. GIT 호스팅 업체에 비용을 지불하고 리포지토리 당 요금을 부과하기 때문에 GIT 서버에 고유 한 원격 리포지토리를 ' 가질 수 없습니다. 개발자 당 여러 개의 원격 지점이 있다는 뜻입니까? 그리고 the reviewer can pull the changes into their environment라고 말할 때 정확한 GIT 명령 (또는 TortoiseGIT 흐름)은 무엇을 의미합니까?
  • 아니요, 여러 저장소가 있음을 의미합니다. 개발자 당 하나씩, 해당 저장소에 원하는만큼 브랜치를 가질 수 있습니다. pull의 경우, TortoiseGIT에서 명령이 무엇인지 모르겠습니다. '하지만 명령은 git pull . ' 푸시의 반대입니다. 원격 저장소에서 변경 사항을 가져와 다른 개발자가 수행했을 수있는 작업으로 환경을 업데이트합니다.

🙂 …나는 당신이 언급 한 push / pulls에 대해 repo / branch / tag 시스템을 검사하기 위해 전체 구문을 요청했습니다. 지금 당장은 어쨌든 git pull를 수행합니다. ' 원격 : master에서 벗어난 문제가 발생합니다. 어쨌든 Steven '의 링크는 훌륭했습니다. 감사합니다

  • 이 경우 모든 실질적인 목적에 대해 호스팅 된 저장소의 분기는 다른 저장소와 동일합니다.
  • 답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다