스택큐힙리스트

로컬 및 원격 Git 저장소의 마스터 브랜치 이름 변경 본문

카테고리 없음

로컬 및 원격 Git 저장소의 마스터 브랜치 이름 변경

스택큐힙리스트 2023. 10. 23. 23:07
반응형

나는 master 브랜치를 가지고 있으며, 이는 원격 브랜치 origin/master를 추적합니다.

로컬 및 원격으로 master-old로 이름을 변경하고 싶습니다. 가능한가요?

다른 사용자들은 origin/master를 추적하였고 (항상 로컬 master 브랜치를 git pull로 업데이트한 사용자들) 원격 브랜치의 이름을 바꾼 후에 어떻게 될까요?

그들의 git pull은 여전히 작동할까요, 아니면 origin/master을 찾을 수 없다는 오류가 발생할까요?

그런 다음에, 더 나아가서 새로운 master 브랜치를 생성하고 싶습니다 (로컬과 원격 모두). 다시 말해, 이 작업을 수행한 후에 다른 사용자들이 git pull을 실행한다면 어떻게 될까요?

나는 이 모든 것이 많은 문제로 이어질 것 같다고 생각한다. 내가 원하는 것을 얻는 깔끔한 방법이 있을까? 아니면 그냥 master를 그대로 두고 master-new라는 새로운 브랜치를 만들고 거기서 추가 작업을 해야 할까?

답변 1

이름을 다시 지정하는 것과 가장 가까운 방법은 원격에서 삭제한 다음 다시 생성하는 것입니다. 예를 들면 다음과 같습니다:

git branch -m master master-old
git push remote :master # 마스터 삭제
git push remote master-old # 리모트에서 마스터를 master-old로 생성
git checkout -b master some-ref # 새로운 로컬 마스터 생성
git push remote master # 리모트에 마스터 생성

그러나 이에는 많은 주의 사항이 있습니다. 첫째, 기존 체크아웃들은 이름 바꾸기에 대해 알지 못합니다 - Git은 브랜치 이름 바꾸기를 추적하는 시도를 하지 않습니다. 새로운 master가 아직 존재하지 않으면, git pull은 에러가 발생할 것입니다. 만약 새로운 master가 생성되었다면, pull은 mastermaster-old을 병합하려고 시도할 것입니다. 그래서 이는 이전에 저장소를 체크아웃한 모든 사람들의 협력이 없는 이상 일반적으로 좋은 아이디어가 아닙니다.

참고: Git의 최신 버전에서는 기본적으로 원격으로 master 브랜치를 삭제할 수 없습니다. 원격 저장소의 receive.denyDeleteCurrent 구성 값을 warn 또는 ignore로 설정하여 이를 무시할 수 있습니다. 그렇지 않은 경우, 즉시 새로운 master를 생성하려면 git push remote :master 단계를 건너뛰고 git push remote master 단계에 --force 옵션을 전달하세요. 원격의 구성을 변경할 수 없다면 master 브랜치를 완전히 삭제할 수 없습니다!

이 경고는 현재 브랜치에만 적용됩니다 (보통 master 브랜치); 다른 브랜치는 위와 같이 삭제하고 다시 만들 수 있습니다.

답변 2

로컬 및 원격 Git 저장소에서 마스터 브랜치 이름 변경하기
Git은 분산 버전 관리 시스템으로 소프트웨어 개발자들이 프로젝트를 효과적으로 관리할 수 있게 도와줍니다. Git의 중요한 요소 중 하나는 브랜치입니다. 브랜치는 개발자가 프로젝트를 유연하게 관리하고 다양한 기능 개발을 진행할 수 있도록 합니다. 그 중 가장 기본적이고 중요한 브랜치는 마스터 브랜치입니다. 이 브랜치는 주로 안정적인 코드를 보관하고 프로젝트의 메인 라인으로 사용되기 때문에 이름이 매우 중요합니다. 때로는 마스터 브랜치의 이름을 변경해야 할 때가 있습니다. 이 에세이에서는 로컬 및 원격 Git 저장소에서 마스터 브랜치의 이름을 변경하는 방법을 알아보겠습니다.
1. 로컬 Git 저장소에서 마스터 브랜치 이름 변경하기
로컬에서 Git 저장소를 사용할 때는 다음과 같은 단계를 따릅니다.
(a) 먼저 터미널 또는 Git Bash를 열고 해당 프로젝트의 디렉토리로 이동합니다.
(b) `git branch -m [new_branch_name]` 명령어를 사용하여 마스터 브랜치의 이름을 변경합니다.
(c) 변경된 브랜치를 원격 저장소에 푸시하기 전에 `git push origin :[old_branch_name] [new_branch_name]` 명령어를 사용하여 이전 브랜치를 원격 저장소에서 제거합니다.
(d) 변경된 브랜치를 원격 저장소에 푸시합니다. `git push origin [new_branch_name]` 명령어를 사용합니다.
2. 원격 Git 저장소에서 마스터 브랜치 이름 변경하기
원격 Git 저장소에서 마스터 브랜치의 이름을 변경하는 것은 로컬 저장소의 이름 변경과 유사합니다. 다음의 단계를 따르시기 바랍니다.
(a) 먼저 터미널 또는 Git Bash를 열고 해당 프로젝트의 디렉토리로 이동합니다.
(b) `git push origin :refs/heads/[old_branch_name] [new_branch_name]` 명령어를 사용하여 이전 브랜치를 제거하고 새로운 이름으로 브랜치를 푸시합니다.
(c) 변경된 브랜치를 로컬 저장소에 업데이트하는 명령어 `git fetch --all`를 사용하여 모든 브랜치를 가져옵니다.
(d) `git branch -m [old_branch_name] [new_branch_name]` 명령어를 사용하여 로컬 저장소의 변경된 브랜치명을 업데이트합니다.
(e) 로컬 저장소의 변경 내용을 원격 저장소에 푸시합니다. `git push origin [new_branch_name]` 명령어를 사용합니다.
마스터 브랜치를 로컬 및 원격 Git 저장소에서 이름을 변경하는 것은 프로젝트 관리에 대한 중요한 작업입니다. 모든 작업을 완료하기 전에 주의해야 할 몇 가지 사항이 있습니다. 먼저, 다른 개발자들과의 협업이 있는 경우 이를 미리 공유하여 혼란을 방지해야 합니다. 또한, 원격 저장소에 변경 내용을 푸시하기 전에 로컬 저장소에서 완료되었는지 확인하는 것이 좋습니다.
이외에도 Git에서 마스터 브랜치의 이름을 변경하는 방법은 여러 가지가 있을 수 있으며, Git의 버전 및 설정에 따라 차이가 있을 수 있습니다. 이를 고려하여 적절한 방법을 선택하고 안정적인 코드 관리를 위해 마스터 브랜치의 이름을 신중하게 변경하시기 바랍니다.

반응형
Comments