Nice programing

내 git 'master'브랜치의 이름을 'release'로 어떻게 바꾸나요?

nicepro 2020. 10. 5. 20:54
반응형

내 git 'master'브랜치의 이름을 'release'로 어떻게 바꾸나요?


우리는 프로젝트에 대해 마스터 브랜치를 릴리스 브랜치라고 부르는 새로운 정책을 시행하여 브랜치를 사용하는 방법을보다 명확하게하고 싶습니다. 당연히 후보 브랜치도 개발 및 출시 할 예정입니다.

다음을 사용하여 로컬에서 마스터 브랜치의 이름을 바꿀 수 있음을 이해합니다.

git branch -m master release

그러나 이는 로컬에만 해당됩니다. 이것을 원격으로 밀어도 HEAD는 여전히 원격 마스터 브랜치를 가리 킵니다. 마스터 브랜치를 완전히 제거하고 초기 복제시 기본 로컬 브랜치를 릴리스로 만들고 싶습니다.

이것을 어떻게 할 수 있습니까?

편집 : 원본이 거대한 서버에 있기 때문에 마스터 브랜치를 삭제하는 동안 오류가 발생하는 것 같습니다. 기본 브랜치가 '릴리즈'가되도록이를 변경할 수 있는지 지금 확인하려고합니다.


git checkout -b release master    # create and switch to the release branch
git push -u origin release        # push the release branch to the remote and track it
git branch -d master              # delete local master
git push --delete origin master   # delete remote master
git remote prune origin           # delete the remote tracking branch

마스터 브랜치 체크 아웃

git checkout master

릴리스 브랜치를 생성하고 전환

git branch release
git checkout release

서버에 푸시

git push origin release

서버에서 마스터 분기 참조 삭제

git push origin :master

로컬 마스터 브랜치 삭제

git branch -d master

이전에 다른 사람들이 언급했듯이 여기서 문제는 Gitorious이며 기본적으로 HEAD-branch를 삭제할 수 없습니다. 이 문제를 해결할 수있는 두 가지 옵션이 있습니다. 하나는 ssh를 사용하여 거대 서버에 로그인하고 파일 서버에서 git-repository를 찾아 다음을 추가하는 것입니다.

[receive]
        denyDeleteCurrent = warn

구성에.

더 쉬운 옵션은 기본 분기를 변경하는 것입니다. 거대한 웹 인터페이스의 저장소로 이동하여 "저장소 편집"을 누르고 "Head Change the symbolic ref the HEAD in the git repository points :"를 설정합니다. 이 작업을 마치면 마스터 브랜치를 삭제할 수 있습니다.


참고 :이 답변은 명령 줄 액세스 권한이있는 자체 호스팅 git 서버를위한 것입니다.

remote master클라이언트에서 를 삭제하려는 것은 실제로 허용되지 않으며 금지 denyDeleteCurrent가 의미 가 있다고 가정 하므로 해당 설정을 변경하고 싶지 않습니다.

그러나 원격 서버에 대한 명령 줄 액세스 권한이있는 경우 마스터 이름을 변경 하는 가장 쉬운 방법 은 원격에서 직접 rename 명령을 실행하는 것입니다.

이것은 나를 위해 일했습니다.

  1. SSH를 통해 원격 git 서버에 로그인
  2. 프로젝트의 xxx.git 폴더로 이동하십시오.
  3. 운영: git branch -m master release

이제 원격 저장소는 release기본 브랜치로 사용하고 git clone해당 저장소의 모든 클라이언트는 기본적으로 릴리스 브랜치를 체크 아웃합니다.

필요에 따라 구성하기 위해 베어 저장소를 설정 한 후에도 매우 유용합니다.


이상적으로 추적을 설정하려면 다음과 같이하십시오.

git push origin HEAD:release
git checkout --track origin/release

이제 다른 항목을 삭제 하시겠습니까?

git branch -d master
git push origin :master

단순한!

참고 URL : https://stackoverflow.com/questions/8762601/how-do-i-rename-my-git-master-branch-to-release

반응형