graphite.dev로 개선된 git 워크플로우



Photo by Richy Great on Unsplash



현재 풍경



Git은 많은 기술자들이 사용하는 도구입니다. 대부분 훌륭합니다. 경험을 향상시킬 수 있는 몇 가지 문제점이 있습니다. 내 문제는 다른 사람들과의 협업에 관한 것입니다. 다음은 몇 가지 예입니다.

코드 검토를 요청하는 사람으로서 변경 사항을 병합할 수 있습니다.
  • 다른 사람이 내 코드를 검토하기를 기다리는 중
  • PR이 매우 오랫동안 열려 있기 때문에 병합 충돌이 발생함
  • 때때로 PR의 코드가 다음 단계에 필요합니다
  • .

    팀원을 위해 코드 리뷰를 하는 사람으로서:
  • 어떤 PR을 검토하거나 재검토해야 하는지 명확하지 않을 수 있습니다
  • .
  • 매우 긴 PR 탐색

  • 해결책



    가장 최근에 회사에 입사했을 때 온보딩 친구가 graphite을(를) 사용하는 방법에 대해 알려 주었습니다.

    흑연은 그들이 "스택"이라고 부르는 것을 활용합니다. 예전에는 하나의 거대한 PR이었던 것이 이제 각 분기가 자체 PR이 되는 여러 분기로 구성됩니다.



    코드를 검토해야 하는 사람으로서는 훌륭하게 들리지만 코드 제출자로서 브랜치를 병합할 때 발생하는 일에 대해 약간의 우려가 있었습니다. 병합 충돌이 많이 발생합니까? 지금까지 흑연을 사용하는 동안 대답은 대부분 '아니오'였습니다. Graphite에는 업스트림에서 변경 사항을 풀다운하고 영향을 받는 모든 분기를 자동으로 리베이스하는 cli 명령이 있습니다.

    gt repo sync --restack
    


    좋은 보너스는 이 명령이 main 분기에 병합된 로컬 분기를 삭제할 것인지 묻는 메시지도 표시한다는 것입니다.

    또 다른 이점은 Graphite에 멋진 웹 기반 UI가 있어 어떤 PR이 PR 제출자 및 검토자로서 입력이 필요한지 확인할 수 있다는 것입니다.

    요약



    모든 사용자 지정 cli 명령에도 불구하고 graphite는 내부적으로 git을 사용합니다. 바닐라 git으로 무언가를 하고 싶다면 graphite는 해당 명령을 git에 직접 전달합니다. 흑연 사용에 대한 한 가지 단점은 Github에서 작동하는 것처럼 보인다는 것입니다(현재로서는?). 또한 이 글을 쓰는 시점에 앱을 사용할 대기자 명단이 있습니다.

    내가 다루지 않은 더 많은 CLI 명령과 기능이 있습니다. git과 마찬가지로 사람들은 선호하는 워크플로우가 있으며 일상적인 워크플로우에서 사용하는 것보다 더 많은 명령/옵션이 있습니다.

    내가 돈을 받지 않았거나 이 게시물을 작성하도록 요청받지 않았다는 면책 조항. 저는 개인적으로 이 도구가 유용하다는 것을 알았습니다. 그것이 당신에게도 도움이 될 수 있다는 의도로 그것이 어떻게 나에게 도움이 되었는지에 대해 공유할 것이라고 생각했습니다.

    좋은 웹페이지 즐겨찾기