마스터에서 git 기본 분기를 변경하는 방법



이 게시물은 원래 GitBetter 뉴스레터에 게시되었습니다. Git에서 게임 레벨을 올리는 데 관심이 있다면 구독할 수 있습니다.



최근에 기본 브랜치 마스터의 이름을 다른 이름으로 바꾸는 것에 대한 많은 제안이 있습니다. 이것은 주로 일부 사람들이 말하는 주인-노예 은유 때문이었습니다.

evidence에는 마스터 카피 또는 마스터 레코딩을 언급하기 위한 것이라고 명시되어 있습니다. 그리고 그것은 마스터-슬레이브를 위한 것이 아닙니다.

그러나 나는 그것이 사람들의 관점이라고 생각하고 어떤 사람들이 그들이 기본 분기를 변경할 수 있는 것이 멋지지 않다고 생각한다면.

이제 기본 git branch _ master _를 _ default _로 변경하는 방법을 살펴보겠습니다(원하는 이름을 사용할 수 있음).

시작하기 전에 여러 리포지토리에서 이것을 시도했으며 주요 변경 사항 없이 잘 작동한다고 말해야 합니다. 자신이 없으면 저장소를 포크하고 먼저 시도하십시오.

전제 조건


  • CI/CD 흐름이 중단되지 않도록 하십시오.
  • 마스터를 대상으로 하는 모든 PR을 병합했는지 확인하십시오. 다른 PR은 괜찮음

  • 기본 분기의 이름을 바꾸는 데는 세 단계가 있습니다.


  • 브랜치 이름 변경
  • 새 분기에 대한 원격 업스트림 추적 설정
  • repo 호스트(Github, Gitlab)에서 새 브랜치 이름 변경

  • 지점 이름 변경



    git branch -m master default
    

    위의 명령은 기본 분기의 이름을 default로 바꿉니다.

    -m 속성은 분기 기록에 영향을 주지 않고 분기 이름을 바꾸는 데 사용됩니다.



    이제 기본 분기가 로컬에서는 변경되지만 원격에서는 변경되지 않습니다.

    새 분기에 대한 원격 업스트림 추적 설정



    git push -u origin default
    

    위의 명령은 새 분기를 원격으로 푸시합니다.

    -u 속성은 분기에 대한 업스트림 추적을 설정하는 데 사용됩니다.



    보시다시피 새 분기에 대한 업스트림이 설정되어 있습니다. 그러나 여전히 이전 업스트림에 대한 참조는 로컬에 있습니다.

    repo 호스트에서 새 분기 이름 변경



    이 튜토리얼에서는 Github를 살펴보겠습니다. 그러나 Gitlab, Bitbucket에서도 동일한 옵션을 사용할 수 있습니다.

    Github에서 설정 -> 분기로 이동합니다. 거기에서 기본 분기를 변경할 수 있습니다.



    그게 다야.

    그러나 이전 분기의 업스트림이 여전히 존재한다는 점을 기억하십시오. 작업 흐름에 영향을 미치지 않습니다. 그러나 리포지토리를 깨끗하게 유지하려면 삭제해야 합니다.

    이전 분기의 업스트림을 삭제하려면 다음을 사용할 수 있습니다.

    git push origin --delete master
    



    보시다시피 이전 원격 스트림이 삭제되었습니다.


    이제 로컬 및 원격 호스트에서 변경이 완료됩니다. 이미 저장소를 사용하고 있는 다른 사람들에게 가져오는 방법을 살펴보겠습니다.

    이 저장소를 사용할 다른 사람들이 있을 것이라는 의미입니다. 흐름을 완료하기 위해 몇 가지 변경 작업을 수행해야 합니다.



    보시다시피 브랜치 마스터는 이미 저장소를 사용하고 있는 다른 사용자의 로컬에 있습니다.

    이미 리포지토리를 사용 중인 사용자를 위한 세 단계가 있습니다.


  • 모든 가지 가져오기
  • 업스트림 리모컨의 HEAD 업데이트
  • 기본 분기 이름 변경

  • 모든 가지 가져오기



    git fetch
    

    위의 명령은 모든 원격 분기를 로컬로 가져옵니다.

    업스트림 원격 HEAD 업데이트



    git remote set-head origin -a
    

    위의 명령은 HEAD 업스트림에 대한 원격 호스트를 쿼리하고 로컬에서 해당 업스트림을 업데이트합니다.

    기본 분기 이름 바꾸기



    git branch -m master default
    

    이것은 예전과 동일합니다. 우리는 브랜치 히스토리에 영향을 주지 않고 브랜치를 옮기는 것뿐입니다.

    이전 단계에서 이미 원격 업스트림을 설정했으므로 새 분기가 변경되고 원격과 동기화됩니다.

    이제 그 사람은 기본 브랜치로 작업할 수 있습니다.

    앞서 말했듯이, 나는 이것이 내 여러 리포지토리에서 시도했으며 변경 사항 없이 잘 작동합니다. 처음에는 혼란스러워 보일 수 있지만 과정을 이해하고 여러 번 읽으면 익숙해질 것입니다.

    의심이 생기거나 어딘가에 막힌 경우 저에게 연락할 수 있습니다.

    읽어 주셔서 감사합니다 :)

    이 게시물은 원래 뉴스레터 GitBetter에 게시되었습니다. Git에서 게임을 레벨업하는 데 관심이 있다면 구독할 수 있습니다.

    좋은 웹페이지 즐겨찾기