실제 업무에 들어가기 위해 당황하지 않고 기억해야 할git 명령

4689 단어 Gittech
독학할 때 git를 많이 쓰는 줄 알고 git를 완전히 이해했는데 막상 실제 직장에 들어와서 갑자기 cherry-pick라고 불렸어요?앵두응, 나는 공황에 빠진 적이 있어.
이번에는 상황에 따라 실제 업무에 들어간 자신을 정리하고 싶습니다.
경험이 없는 엔지니어가 실제 업무에서 가장 먼저 착수한 프로젝트는 어느 정도 응용 프로그램의 버그 복구 업무가 되지 않았습니까?이번에는 과거 이런 프로젝트를 맡았던 필자를 예로 들어 설명하고 싶다.
여기에 소개한 것은 필자가 겪은 프로젝트 중의 사용 방법이다.조직 내에 규칙이 정해진 경우에는 따르십시오.

독자 대상

  • 실무 경험이 없는 사람
  • git의 기본명령을 어느 정도 숙련되게 사용할 수 있는 사람
  • "The The The Technology Performance"


    포인트 명령
    git checkout -b <任意のブランチ名> <基点としたいブランチ名>
    
    최초에 개발 환경을 조정하기 위해 프로젝트를 복제한 창고.
    $ git clone <gitURL>
    
    다음 명령을 사용하여 항목에 어떤 지점이 있는지 확인합니다.
    $ git branch -a
    
    기본적으로 다음과 같은 세 가지 지점이 있다.
  • main(master) 지점: 공식 환경에서 디자인된 지점
  • develop 지점:feature 지점에서 만든 기능을 검증하는 지점
  • feature 지점: 응용 기능 개발에 사용되는 지점
  • 이번에 새로운 기능을 실시한다고 해서 개발자 지점을 중심으로 피처 지점을 재제작했다.
    $ git checkout -b feature/implement_〇〇_feature origin/develop
    
    이렇게 하면 작업용 지점을 만들 수 있다.
    $ git branch
    feature/implement_〇〇_feature
    
    개발자 지점을 기점으로 하는 데는 이유가 있다.
    개발자 지점은feature 지점의 실시 기능을 검증하는 지점입니다.따라서 이번에 제작된feature/implement_〇〇_feature 지점은 개발이 완료되면 개발자 지점에 합병하여 기능을 검증한다.feature 지점의 최종 합병의 목적은 개발자 지점을 위해 개발자 지점을 기점으로 feature 지점을 만드는 것이다.
    또 개발자의 피처 지점도 통합했다.프로젝트의 최신 상태를 반영한 지점이라는 것이다.여기를 토대로 최신 코드를 개발할 수 있는 것도 또 다른 이유다.
    개발이 끝난 후 익숙한 지령으로commiit &push를 진행하고 개발자 지점에pull 요청을 보내면 됩니다.
    실제 업무에서 어디를 중심으로 지점을 만드는지 깨닫게 되면 굿잡다.

    상대방이'점수만 달라'고 하면...


    새로운 기능이 순조롭게 추가되었다.
    개발자 지점 검증도 완료했으니 안심하세요.근데 이런 말 듣게 될 거야.
    상사: "저는 개발자 지점에서 일을 확인했기 때문에main 지점에feature 지점의 차이를 더했습니다."
    저자: "?????"
    이번 포인트 지령은 cherry-pick이다.
    git cheryy-pick <コミットID>
    
    cherry-pick는 특정한 제출과 응용을 추출할 수 있는 명령이다.
    어떻게 된 건지 자세히 설명할게.
    우선, 이전feature/implement_〇〇_feature의 지점에 추가된 기능의 검증이 끝났기 때문에main지점에 이 기능을 반영하도록 하고자 합니다.
    그러나 개발자 지점을main 지점에 통합하면 다른 개발자가 만든 검증 과정에서의 기능도 통합된다.
    또한feature 지점을main 지점에 직접 통합시켜도feature 지점은develop 지점을 기점으로 하여 검증 도중의 기능을 병합할 수 있다.
    따라서 feature/implement_〇〇_feature 분기 제작 기능을main 분기에 반영하고 싶을 때git cherry-pick 명령만 유용하다.
    우선feature/implement_〇〇_feature 지점git log으로 명령을 내린다.
    $ git branch
    feature/implement_〇〇_feature
    $ git log
    commit asd8dfgeff817ec66f445da521402690a937
    Author: test name <[email protected]>
    Date:   Mon May 7 20:02:11 2021 -0000
    
        implement 〇〇 feature
    
    실제 설치 기능의 제출 정보를 표시하기 때문에commiitID를 미리 복사합니다: asd8dfgeff817ec66f445da521402690a937.
    다음은main 지점을 기점으로 새로운release 지점을 만듭니다.
    $ git checkout -b release/implement_〇〇_feature origin/main
    $ git branch
    release/implement_〇〇_feature
    
    그리고cherry-pick 명령을 사용하여release 지점에feature 지점의 제출을 반영합니다.
    $ git cherry-pick asd8dfgeff817ec66f445da521402690a937
    
    이렇게 하면 feature/implement_〇〇_feature 지점에 추가된 기능만 반영하는 지점을 만들 수 있다.
    이push를main 지점에 보내면 추가 기능의 차이만 반영됩니다.

    '비상대응 기타 기능'이라고 하면...


    포인트 명령
    git stash
    
    feature/implement_〇〇_feature는 지점의 새로운 기능을 개발하는 도중'긴급 대응 기타 기능'을 알렸다.대응하기 위해 다른 지점으로 옮겼을 때 다음과 같은 오류가 발생했다.
    error: Your local changes to the following files would be overwritten by checkout:
    test.app
    Please, commit your changes or stash them before you can switch branches.
    
    이때 취한 대책은 다음과 같은 3가지가 있다.
  • 변경 취소
  • 변경 사항 제출
  • 회피변경
  • 어렵게 절반으로 만든 기능이라 코드를 폐기하고 싶지 않다.하지만 제출하려면 얼치기 정도로...이 경우git stash 지령으로 변경을 피하세요.
    $ git stash
    
    이로써 지금까지의 변경을 잠시 피하고 다른 지점으로 옮길 수 있다.
    $ git checkout feature/implement_other_feature
    
    feature/implement_other_feature는 지점 작업이 끝난 후 원래의 지점checkkkout을 다음 명령이 피한 내용을 원상태로 회복할 수 있다.
    $ git stash list
    stash@{0}: WIP on feature/implement_〇〇_feature: xxxx
    stash@{1}: WIP on release/implement_other_feature: xxxx
    
    $ git stash apply stash@{0} <- 元に戻したい変更
    

    끝말


    git 지령만 정리하면 되지만, 실제 업무에서 어떻게 사용하는지 상상해보라고 상황에 맞게 해설했다.
    이 기사가 조금이라도 도움이 된다면 정말 좋겠다.

    좋은 웹페이지 즐겨찾기