개발 브랜치를 따서 작업을 진행하다가 작업중인 브랜치의 이름을 변경하고 싶은 경우가 종종있다. 깃허브에 생성해놓은 브랜치의 이름은 git 명령을 이용해서 변경하거나 깃허브 웹 페이지에서 변경할 수 있다.
일단 깃허브에 생성되어 있는 oldname
이라는 브랜치의 이름을 newname
으로 바꿔보자.
git 명령을 이용한 브랜치 이름 변경
우선 로컬 환경에서 브랜치의 이름을 변경해야한다. 다음 git 명령을 이용해서 브랜치 이름을 변경할 수 있다.
git branch -m oldname newname
mv 이전이름 새로운이름
을 이용해서 리눅스 파일의 이름을 변경하는 것처럼 -m 옵션으로 브랜치의 이름을 변경한다.
원격 저장소에 반영
로컬 저장소에서 브랜치의 이름을 변경했다. 하지만 깃허브에 저장되어 있는 브랜치의 이름은 아직 반영이 되어 있지 않다. 이 변경사항을 원격 저장소인 깃허브에 push 해야한다. 참고로 현재 상태는 oldname이라는 브랜치가 삭제되고 newname이라는 브랜치가 새로 생성되어 있는 상태다.
로컬 저장소에서는 이름을 변경했다. 이제 변경 사항을 원격 저장소인 github에 push하면 된다. 현 상태는 oldname이라는 브랜치가 삭제되고 newname이라는 브랜치가 새로 생성된 상태다.
oldname이라는 브랜치의 삭제 사항을 원격 저장소인 github에 push 한다.
git push origin :oldname
이 때 이전 이름인 oldname 앞에 ':' 문자를 붙여서 push 한다.
그러면 대충 이런 메시지가 나온다. 깃허브에 접속해서 브랜치 정보를 보면
oldname 브랜치 정보가 삭제되었다.
이제 새로만들어진 newname 브랜치를 push하면 된다.
git push --set-upstream origin newname
깃허브에 접속해서 제대로 적용되었는지 확인한다.
제대로 적용되었다.
깃허브 웹 페이지에서 변경
만약 웹 브라우저를 이용할 수 있는 환경이라면 깃허브 저장소의 웹 페이지에서 브랜치 이름을 변경할 수 있다.
우선 깃허브 저장소의 메인 페이지로 들어가보자. 그러면 파일 리스트 부분 위쪽으로 브랜치 정보를 볼 수 있는 링크를 찾을 수 있다. 이 버튼을 눌러서 브랜치 리스트를 확인하자.
현 저장소에 생성되어 있는 브랜치 정보들이 나열되어 있다. 이름을 변경하고자하는 브랜치의 오른쪽 항목에 연필 모양의 아이콘이 있다. 이 버튼을 클릭하면 브랜치 이름을 변경할 수 있는 화면이 뜨게 된다.
변경하고 싶은 새로운 이름을 써넣고 'Rename branch' 버튼을 누르면 깃허브에서의 브랜치 이름이 변경된다.
깃허브의 웹페이지에서 브랜치의 이름을 변경하면 이전 브랜치 이름을 담고 있는 URL들이 자동으로 새로운 이름을 포함하는 주소로 리다이렉트된다. 예전 브랜치 이름으로 파일 혹은 수정사항을 URL로 따놨을 경우 이름을 변경한 이후에도 편하게 사용할 수 있다. 마찬가지로 브랜치 보호 규칙들도 업데이트되고, 열려있는 PR 들과 드래프트 릴리즈도 함께 업데이트된다. 하지만 깃허브 액션 워크플로우는 변경된 이름을 따라가지 않는다.
또 한, 사용자들이 로컬에 받아놓은 로컬 브랜치로 git pull 할 때 자동으로 업데이트해주지는 않는다. 따라서 로컬 저장소에서의 업데이트가 필요하다.
$ git branch -m oldname newname
$ git fetch origin
$ git brancu -u origin/newname newname
$ git remote set-head origin -a
$ git remote prune origin
이 명령들로 로컬 저장소의 브랜치 이름을 업데이트할 수 있다.
댓글