UFO ET IT

GitHub에서 분기 이름 변경

ufoet 2023. 6. 2. 21:48
반응형

GitHub에서 분기 이름 변경

다음을 사용하여 로컬 지점의 이름을 변경했습니다.

git branch -m oldname newname

그러나 이렇게 하면 브랜치의 로컬 버전 이름만 변경됩니다.깃허브에 있는 것의 이름을 어떻게 바꿀 수 있습니까?

앞서 언급했듯이 GitHub에서 이전 명령을 삭제하고 다시 푸시합니다. 사용된 명령은 필요 이상으로 장황합니다.

git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local

, 명을조분보면해석금령,git push명령은 기본적으로 다음과 같습니다.

git push <remote> <local_branch>:<remote_branch>

따라서 local_branch가 지정되지 않은 상태에서 푸시를 수행하는 것은 기본적으로 "로컬 저장소에서 아무것도 가져오지 않고 원격 분기로 만듭니다."를 의미합니다.저는 항상 이것이 완전히 흐리멍덩하다고 생각해왔지만, 그것은 그것이 행해지는 방식입니다.

Git 1.7부터는 원격 분기를 삭제하기 위한 대체 구문이 있습니다.

git push origin --delete name_of_the_remote_branch

@void가 언급한 바와 같이.댓글 포인터

두 가지 푸시 작업을 결합할 수 있습니다.

git push origin :old_branch new_branch

이렇게 하면 이전 분기가 삭제되고 새 분기가 푸시됩니다.

및 새 수 .~/.gitconfig:

[alias]
    branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"

용도:

git branchm origin old_branch new_branch

셸 명령의 위치 인수는 Git의 이전 버전(2.8? 이전 버전)에서는 문제가 있으므로 Git 버전에 따라 별칭이 달라질 수 있습니다.자세한 내용은 이 토론을 참조하십시오.

다음 명령이 저에게 효과가 있었습니다.

git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want

Git 브랜치 이름을 변경할 수 있는 방법에 대한 세 가지 명령을 찾았습니다. 이 명령들이 그렇게 하는 더 빠른 방법입니다.

git branch -m old_branch new_branch         # Rename branch locally
git push origin :old_branch                 # Delete the old branch
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

단계별로 필요한 경우 다음과 같은 훌륭한 기사를 읽을 수 있습니다.

Git 로컬 및 원격 분기의 이름을 변경하는 방법

Git의 분기 이름을 로컬 및 원격으로 변경합니다.

로컬 분기의 이름을 변경합니다.

이름을 변경할 분기에 있는 경우:

git branch -m new-name

다른 지점에 있는 경우:

git branch -m old-name new-name

이전 이름의 원격 분기를 삭제하고 새 이름의 로컬 분기를 푸시합니다.

git push origin :old-name new-name

새 이름의 로컬 분기에 대한 업스트림 분기를 재설정합니다.

분기로 전환한 다음:

git push origin -u new-name

결론은 다음과 같습니다.

git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name

터미널 없이도 그렇게 할 수 있습니다.새 이름으로 분기를 만들고 이전 이름을 제거하기만 하면 됩니다.

분기 만들기

리포지토리의 분기 선택기에서 새 분기 이름을 입력하기 시작합니다.새 분기를 만들 수 있는 옵션이 제공됩니다.

분기 만들기

현재 컨텍스트에서 분기됩니다.예를 들어, 버그 수정 분기에 있는 경우 마스터가 아닌 버그 수정에서 새 분기를 만듭니다.대신 커밋이나 태그를 보고 계십니까?특정 버전에서 코드를 분기합니다.

분기 삭제

리포지토리의 분기 페이지에도 삭제 단추가 표시됩니다.

분기 삭제

추가 보너스로 지점의 풀 요청(있는 경우)에 대한 링크도 제공됩니다.

이 콘텐츠를 복사하여 붙여넣을 위치: 분기 만들기삭제

이전 분기를 제거하고 새 분기를 만들기만 하면 됩니다.

예(원격 분기의 이름만 변경):

git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname

또한 로컬 분기의 이름을 변경하고 푸시/풀 위치에 대한 설정을 변경해야 합니다.

깃허브 측에서는 새로운(2021년 1월) "기존 지점 이름 변경 지원"을 사용할 수 있습니다(보호된 지점은 관리자만 이름을 변경할 수 있습니다, 끝 참조).

다음 자습서를 따르십시오. https://docs.github.com/en/github/administering-a-repository/renaming-a-branch

분기 대화상자 이름 바꾸기 -- https://i2.wp.com/user-images.githubusercontent.com/2503052/105069955-a231fa80-5a50-11eb-982c-a114c9c44c57.png?ssl=1

GitHub 웹 사이트에서 분기 이름을 변경하려면 어떻게 합니까?를 참조하십시오.

github.com 에서 분기 이름을 변경하면 (소스) 다음과 같은 방식으로 변경할 수 있기 때문에 이 방법이 더 좋습니다.

  • 열려 있는 끌어오기 요청의 대상을 다시 지정
  • 분기를 기준으로 초안 릴리스 업데이트
  • 이전 이름을 명시적으로 참조하는 분기 보호 규칙 이동
  • 해당하는 경우 GitHub 페이지를 작성하는 데 사용되는 분기를 업데이트합니다.
  • 리포지토리의 로컬 복사본을 업데이트하라는 지침과 함께 리포지토리 홈 페이지의 리포지토리 기여자, 유지 관리자 및 관리자에게 통지 표시
  • 이전 분기로 이동하는 기여자에게 알림 표시
  • 이전 분기 이름에 대한 웹 요청을 새 분기 이름으로 리디렉션
  • 이전 분기 이름에 대한 API 요청에서 "영구적으로 이동됨" 응답 반환

2021년 12월 업데이트:

보호된 분기의 이름을 관리자로 제한

이제 관리자만 분기 보호 규칙에 의해 보호되는 분기의 이름을 변경할 수 있습니다.

GitHub을 사용하면 리포지토리 공동작업자가 기본 분기를 제외한 리포지토리의 모든 분기 이름을 바꿀 수 있습니다.

공동작업자가 분기 이름을 변경하면 해당 분기에 적용되는 비 와일드카드 분기 보호 규칙도 분기의 새 이름과 일치하도록 변경됩니다.

관리자만 분기 보호 규칙을 수정할 수 있으므로 보호된 분기의 이름은 이제 관리자 사용자로 제한됩니다.

자세한 내용은 분기 이름 변경분기 보호 규칙 관리참조하십시오.

그렇게 간단합니다.Git 브랜치의 이름을 로컬로 변경하고 이 스니펫을 원격으로 사용하려면 다음을 수행합니다(테스트를 거쳐 매력적으로 작동함).

git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>

설명:

  1. 단계 이름 바꾸기:

Git 참조:-m 또는 -M 옵션을 사용하면 <oldbranch>의 이름이 <newbranch>로 바뀝니다.<oldbranch>에 해당 reflog가 있으면 <newbranch>와 일치하도록 이름이 변경되고, reflog 항목이 생성되어 분기 이름을 기억합니다.<newbranch>가 존재하는 경우 -M을 사용하여 이름을 변경해야 합니다.

  1. 삭제 단계:

Git reference: git push origin: experimental 오리진 저장소에서 실험과 일치하는 ref(예: refs/heads/experimental)를 찾아서 삭제합니다.

  1. 원격 저장소 단계 업데이트(추적을 위한 업스트림 참조):

Git reference: --set-upstream 최신 상태이거나 성공적으로 푸시된 모든 분기에 대해 인수 없는 git-pull[1] 및 기타 명령에서 사용되는 업스트림(추적) 참조를 추가합니다.자세한 내용은 지점을 참조하십시오.<name>.git-config[1]에서 검색합니다.

다음은 저에게 도움이 되었습니다.

  1. 새 분기를 먼저 만듭니다.

    git push github newname :refs/heads/newname
    
  2. GitHub 사이트에서 설정으로 이동하여 기본 분기를 다음으로 변경합니다.newname

  3. 를 합니다.oldname

    git push github --delete oldname
    

이것은 하자라펫 투나니안의 답변에 추가된 조건입니다.

git branch -m old_branch new_branch         # Rename branch locally


git push origin :old_branch                 # Delete the old branch
# You might be getting an error doing the above step, skip to the next step

git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

다음을 수행하는 동안 오류가 발생합니다.git push origin :old_branch삭제하려는 old_branch기본 분기일 수 있기 때문입니다.

다른 두 단계를 수행한 다음 허브로 이동하여 설정에서 기본 분기를 변경하면 다음과 같은 작업을 수행할 수 있습니다.git push origin :old_branch.

다른 방법은 다음 파일의 이름을 변경하는 것입니다.

  1. 프로젝트 디렉토리를 탐색합니다.
  2. 이름 바꾸기.git/refs/head/[branch-name].git/refs/head/new-branch-name.
  3. 이름 바꾸기.git/refs/remotes/[all-remote-names]/[branch-name].git/refs/remotes/[all-remote-names]/new-branch-name.

로컬 PC와 오리진/원격 서버 모두에서 헤드원격 이름을 변경합니다.

이제 지점 이름이 변경되었습니다(로컬 및 원격!).


주의

현재 지점 이름에 슬래시가 포함된 경우(/Git는 다음과 같은 디렉터리를 생성합니다.

현재 지점 이름: "awe/some/branch"

  • .git/refs/head/awe/some/branch
  • .git/refs/remotes/[all-remote-names]/awe/some/branch

wish 지점 이름: "new-branch-name"

  1. 프로젝트 디렉토리를 탐색합니다.
  2. 를 합니다.branch..git/refs/*/awe/some/.
  3. 에 ..git/refs/head/.
  4. 를 합니다.branch 모서철다하에서 ..git/refs/remotes/*/awe/some/.
  5. 을 집넣어에 ..git/refs/remotes/*/.
  6. 복사된 을 모두 합니다.branch을 파일 형식으로new-branch-name.
  7. 디렉토리 및 파일 구조가 다음과 같이 표시되는지 확인합니다.
  • .git/refs/head/new-branch-name
  • .git/refs/remotes/[all-remote-names]/new-branch-name
  1. 모든 원격 오리진/서버에서 동일한 작업 수행(존재하는 경우)
  • 정보: 원격 서버에는 이미 원격 서버에 있기 때문에 일반적으로 ref/remote/* 디렉터리가 없습니다; (글쎄요, 고급 Git 구성에서는 가능할 수도 있지만, 저는 그것을 본 적이 없습니다.)

이제 지점 이름이 다음에서 변경되었습니다.awe/some/branch로.new-branch-name(로컬 및 원격!)

지점 이름의 디렉터리가 제거되었습니다.


정보:이 방법이 최선은 아닐 수도 있지만 다른 방법에 문제가 있을 수 있는 사람들에게는 여전히 효과가 있습니다.

이제 GitHub API를 통해 지점 이름 변경을 사용할 수 있습니다.

GitHub REST API를 사용하여 분기 이름을 변경할 수 있습니다.

또한 다음과 같이 CLI통해 API 명령을 쉽게 실행할 수 있습니다.

gh api "repos/{owner}/{repo}/branches/{branch}/rename" -f new_name={newBranch}

이 기사는 그것을 정말 쉽게 하는 방법을 보여줍니다.

  1. 로컬 Git 분기의 이름을 변경하려면 Git branch -m 명령을 사용하여 이름을 수정합니다.

     git branch -m feature1 feature2
    
  2. 원격 Git 분기의 이름을 변경하는 명령을 찾는 경우 다음과 같습니다.

     git push -u origin feature2:feature3
    

    이 작업을 수행하기 전에 분기에 태그가 없는지 확인합니다.로 할 수 있습니다.git tag.

제 경우에는, 추가 명령이 필요했습니다.

git branch --unset-upstream

내 이름을 바꾼 지점이 다음으로 이동하도록 하기 위해.origin newname.

(타자의 용이성을 위해) 먼저git checkout oldname그런 다음 다음을 실행합니다.

git branch -m newname <br/> git push origin : 이전 이름*or*git push origin --이전 이름 삭제
git branch --unset-upstream
git push -u origin newname 또는 git push origin newname

이 추가 단계는 다음을 통해 지점에 원격 추적을 설정하기 때문에 필요할 수 있습니다.git push -u origin oldname이런 식으로, 내가 가지고 있을 때.oldname체크아웃했습니다. 나중에 입력만 하면 됩니다.git push보다는git push origin oldname.

명령을 사용하지 않는 경우git branch --unset-upstream전에git push origin newbranch재탕. oldbranch그리고 밀어내기newbranch로.origin oldbranch내 의도를 거스르는 것.

다음 명령은 브랜치의 이름을 로컬로 변경하고 원격 위치의 이전 브랜치를 삭제한 후 새 브랜치를 푸시하여 새 원격을 추적하도록 로컬 브랜치를 설정합니다.

git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch

Git 분기에서 다음을 실행합니다.

git branch -m old_name  new_name

이렇게 하면 로컬 리포지토리의 지점 이름이 수정됩니다.

git push origin :old_name new_name

이렇게 하면 수정된 이름이 원격으로 푸시되고 이전 분기가 삭제됩니다.

git push origin -u new_name

원격 분기를 추적하도록 로컬 분기를 설정합니다.

이렇게 하면 문제가 해결됩니다.

  1. 아틀라스 소스 트리 다운로드(무료)
  2. 리포지토리의 로컬 복제본을 가져옵니다.
  3. 사이드바에서 이름을 바꿀 분기를 마우스 오른쪽 단추로 클릭합니다.상황에 맞는 메뉴에서 "분기 이름 바꾸기..."를 선택한 후 분기 이름을 변경합니다.
  4. 출발점으로 밀어넣기.

세 가지 간단한 단계

  • git push origin head

  • git branch -m old-branch-name new-branch-name

  • git push origin head

언급URL : https://stackoverflow.com/questions/9524933/renaming-a-branch-in-github

반응형