로컬 및 원격 Git 리포지토리 모두의 마스터 브랜치 이름 바꾸기에 설명 된대로 원격 브랜치의 이름을 바꾸고 싶지 않습니다 .
원격 지점으로 푸시되지 않은 로컬 지점의 이름을 바꾸려면 어떻게해야합니까?
원격 지점의 이름을 바꿔야 할 경우 :
Git 로컬 및 원격 지점 이름을 모두 바꾸려면 어떻게합니까
로컬 및 원격 Git 리포지토리 모두의 마스터 브랜치 이름 바꾸기에 설명 된대로 원격 브랜치의 이름을 바꾸고 싶지 않습니다 .
원격 지점으로 푸시되지 않은 로컬 지점의 이름을 바꾸려면 어떻게해야합니까?
원격 지점의 이름을 바꿔야 할 경우 :
Git 로컬 및 원격 지점 이름을 모두 바꾸려면 어떻게합니까
답변:
지점을 가리키면서 지점의 이름을 바꾸려면 다음을 수행하십시오.
git branch -m <oldname> <newname>
현재 지점의 이름을 바꾸려면 다음을 수행하십시오.
git branch -m <newname>
이것을 기억하는 방법 은 파일의 이름을 바꾸는 방법 인 -m
"이동"(또는 mv
)입니다. 별칭을 추가하면 도움이 될 수 있습니다. 이렇게하려면 다음을 실행하십시오.
git config --global alias.rename 'branch -m'
Windows 또는 대소 문자를 구분하지 않는 다른 파일 시스템에 있고 이름에 대문자 변경 사항 만있는 경우을 사용해야합니다 -M
. 그렇지 않으면 git은 이미 분기 오류 가 발생합니다.
git branch -M <newname>
git push -f --mirror
하면 원격에서 브랜치의 이름이 바뀌지 만 원격이 단순히 현재 저장소의 사본 인 경우에만이 방법을 사용해야합니다. 또한이 질문을보십시오 : stackoverflow.com/questions/1526794/git-rename-remote-branch
push.default
구성 방법에 달려 있습니다. 기본적으로 ( matching
) 이름이 일치하는 리모컨으로 푸시됩니다. 당신은해야 git push origin <newname>:<oldname>
하거나 새로운 원격 지점을 만들 것입니다. 그러나 이로 push.default
설정되어 있으면 리모컨의 이전 이름으로 이동할 upstream
수 있습니다 push origin head
.
mv
파일 이름 바꾸기에 대한 유닉스 관례에 따라 "이동"의 줄임말입니다 . 그 이유는 디렉토리 기반 inode 파일 시스템에서 이동 및 이름 바꾸기가 완전히 동일하기 때문입니다.
-m
옵션 의 긴 이름은 --move
예를 들어 git branch --move master
현재 분기의 이름을 "마스터"로 바꿉니다.
git branch -m old_branch_name new_branch_name
위의 명령은 브랜치 이름을 변경하지만 이름이 바뀐 브랜치를 사용하는 데에는주의해야합니다. 이름이 바뀐 브랜치와 연관된 기존 업스트림 브랜치가있는 경우이를 참조하기 때문입니다.
로컬 브랜치의 이름이 new_branch_name (예제 이름)으로 변경된 후 일부 변경 사항을 마스터로 푸시하려면 다음을 수행하십시오.
git push origin new_branch_name:master
(현재 변경 사항은 마스터 지점으로 이동하지만 로컬 지점 이름은 new_branch_name입니다)
자세한 내용은 " Git에서 로컬 지점 이름을 바꾸는 방법 "을 참조하십시오 .
현재 지점의 이름을 바꾸려면
git branch -m <newname>
지점 이름을 바꾸는 단계는 다음과 같습니다.
git branch -m <new_name>
git push origin :<old_name>
git push origin <new_name>:refs/heads/<new_name>
편집 (2017 년 12 월 1 일) : 명령을 실행 git status
하고 새로 생성 된 분기가 이전 분기가 아닌 자체 참조를 가리키는 지 확인하십시오 . 이전 분기에 대한 참조를 찾으면 다음을 사용하여 업스트림을 설정 해제해야합니다.
git branch --unset-upstream
지점 이름을 변경하면 지점이 완료되면 유용합니다. 그런 다음 새로운 것들이오고 있으며, 당신은 그것을 삭제하는 대신 같은 지점에서 개발하고 새로운 것을 만들고 싶습니다.
내 경험상 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 push origin :old-name new-name
올바르게 실행할 때 문제가 있습니까?
지금까지 정답은 맞지만 여기에 몇 가지 추가 정보가 있습니다.
분기 이름을 '-m'(이동)으로 안전하게 바꿀 수 있지만 이름이 같은 기존 분기가 이미 있더라도 이름을 강제로 변경하기 때문에 '-M'에주의해야합니다. 다음은 'git-branch'매뉴얼 페이지에서 발췌 한 내용입니다.
-m 또는 -M 옵션을 사용
<oldbranch>
하면 이름이로 변경됩니다<newbranch>
.<oldbranch>
해당 reflog가 있으면 일치하도록 이름이 바뀌고<newbranch>
분기 이름 변경을 기억하기 위해 reflog 항목이 작성됩니다. 경우<newbranch>
존재 -M이 일어날 이름 바꾸기를 강제로 사용되어야합니다.
-M
분기 이름의 대 / 소문자를 수정하는 경우 (예 :로 변경) 이 플래그는 이름을 강제로 바꾸는 데에도 유용 myBranch
합니다 MyBranch
. ( -m
, git returns fatal: A branch named 'MyBranch' already exists.
)
어리석게 하이픈으로 시작하는 지점 이름을 지정한 다음 master를 체크 아웃했습니다. 분기 를 삭제 하고 싶지 않았습니다 .
이들 중 어느 것도 효과가 없었습니다.
git checkout -dumb-name
git checkout -- -dumb-name
"
s, '
s 및 \
s도 도움이되지 않았습니다. git branch -m
작동하지 않습니다.
마지막으로 수정 한 방법은 다음과 같습니다. 작업 복사본의 .git / refs / heads로 이동하여 파일 이름 "-dumb-name"을 찾고 지점의 해시를 가져옵니다. 그런 다음 체크 아웃하고 새 이름을 가진 새 브랜치를 만든 다음 이전 브랜치를 삭제합니다.
git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
reflog
remote
GitHub뿐만 아니라 이름의 변경 사항을 복제하는 단 3 단계 :
1 단계 git branch -m old_branchname new_branchname
2 단계 git push origin :old_branchname new_branchname
3 단계 git push --set-upstream origin new_branchname
git push --set-upstream origin new_branchname
@Nomade 답변에 언급되어 있습니다
이 명령을 사용하여 분기의 이름을 바꾸십시오.
git branch -m [old_branch_name] [new_branch_name]
-m
: 지점의 이름을 바꾸거나 이동합니다. 이미 지점이 있으면 오류가 발생합니다.
이미 지점이 있고 해당 지점으로 이름을 바꾸려면 다음을 사용하십시오.
git rename -M [old_branch_name] [new_branch_name]
도움말에 대한 자세한 정보를 보려면 터미널에서이 명령을 사용하십시오.
git branch --help
또는
man git branch
지점에 있다면 이름을 바꾸십시오.
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
또는 빠른 방법으로 다음 3 단계를 수행 할 수 있습니다.
# 로컬로 지점 이름 바꾸기
git branch -m old_branch new_branch
# 오래된 원격 지점 삭제
git push origin :old_branch
# 새로운 지점을 누르고 새로운 지점을 추적하도록 로컬 지점을 설정합니다
git push --set-upstream origin new_branch
참조 : https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html
세 단계는 다음과 같습니다. 터미널 내부에서 전화를 걸고 지사 이름을 변경할 수있는 명령입니다.
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 지점 이름을 변경하는 방법 에 대한 좋은 기사입니다.
아마도 다른 사람들이 언급했듯이 이것은 분기 명명의 경우 불일치입니다.
이러한 상황이 발생하면 Windows를 사용하고 있다고 추측 할 수 있습니다.
$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.
그런 다음 중간 단계를 수행해야합니다.
$ git branch -m temporary
$ git branch -m casesensitive
더 이상 없습니다.
-M
대신 사용할 수 있습니다 -m
.
질문에 구체적으로 답변하려고합니다 (적어도 제목).
로컬 지점의 이름을 바꿀 수도 있지만 원격에서 이전 이름을 계속 추적합니다.
git branch -m old_branch new_branch
git push --set-upstream origin new_branch:old_branch
이제을 실행 git push
하면 원격 old_branch
참조가 로컬로 업데이트됩니다 new_branch
.
이 구성 을 알고 기억 해야합니다. 그러나 원격 브랜치 이름을 선택할 수 없지만 유용하지 않으면 유용 할 수 있습니다 (오, 나는 그것을 좋아하지 않는 좋은 이유가 있습니다!). 현지 지사의 이름.
가져 오기 구성을 사용하여 로컬 원격 참조의 이름을 바꿀 수도 있습니다. 즉, refs/remote/origin/new_branch
분기에 대한 ref 포인터를 갖는 것은 실제로 old_branch
on origin
입니다. 그러나 나는 당신의 마음의 안전을 위해 이것을 권장하지 않습니다.
SourceTree 를 사용하고자한다면 (권장), 지점을 마우스 오른쪽 단추로 클릭하고 '이름 바꾸기'를 선택하십시오.
다른 옵션은 명령 행을 전혀 사용하지 않는 것입니다. SourceTree 와 같은 Git GUI 클라이언트는 이와 같은 질문을 스택 오버플로에서 가장 많이 보는 구문 학습 곡선 / 고통을 없애줍니다.
SourceTree에서 왼쪽의 "분기"분할 창에서 로컬 분기를 마우스 오른쪽 단추로 클릭하고 "이름 바꾸기 ..."를 선택하십시오.
지점을 원격 서버로 푸시하지 않기 때문에이 예제가 유용합니다.
"my-hot-feature"라는 기존 분기가 있고 이름을 "feature-15"로 바꾸려고한다고 가정하겠습니다.
먼저 로컬 지점을 변경하려고합니다. 이것은 더 쉬울 수 없었다 :
git branch -m my-hot-feature feature-15
자세한 내용 은 Git 지점의 로컬 및 원격 이름 바꾸기를 방문하십시오 .
힘내 버전 2.9.2
사용중인 로컬 지점의 이름을 변경하려면 다음을 수행하십시오.
git branch -m new_name
다른 지점의 이름을 변경하려면 다음을 수행하십시오.
git branch -m old_name new_name
다른 분기의 이름을 이미 존재하는 이름으로 변경하려면 다음을 수행하십시오.
git branch -M old_name new_name_that_already_exists
참고 : 마지막 명령은 파괴적이며 브랜치의 이름을 바꾸지 만 브랜치 이름은 고유해야하기 때문에 해당 이름과 커밋이있는 기존 브랜치를 잃게됩니다.
Git 브랜치 이름 변경은 다음을 사용하여 수행 할 수 있습니다.
git branch -m oldBranch newBranch
git branch -M oldBranch ExistingBranch
-m 과 -M 의 차이점 :
-m : 당신이 사용하여 기존 지점의 이름으로 지점의 이름을 변경하려는 경우 -m을 . 분기가 이미 존재한다는 오류가 발생합니다. 고유 한 이름을 지정해야합니다.
그러나,
-M : 이름이 존재하더라도 이름을 강제로 바꾸는 데 도움이됩니다. 따라서 기존 지점은 전체 지점을 덮어 씁니다 ...
다음은 Git 터미널 예제입니다.
mohideen@dev:~/project/myapp/sunithamakeup$ git branch
master
master0
new_master
test
* test1
mohideen@dev:~/project/myapp/sunithamakeup$ git branch -m test1 test
fatal: A branch named 'test' already exists.
mohideen@dev:~/project/myapp/sunithamakeup$ git branch -M test1 test
mohideen@dev:~/project/myapp/sunithamakeup$ git branch
master
master0
new_master
* test
mohideen@dev:~/project/myapp/sunithamakeup$
원하는 경우 :
git branch -m <oldname> <newname>
git push origin: old-name new-name
git commit <newname>
git push origin new_branch_name:master
git status
git checkout
이전의 모든 답변에 대해 이야기하고 git branch -m
있습니다. 물론 작동하기는 쉽지만 다른 Git 명령을 기억하기가 조금 어려울 수 있습니다. 그래서 나는 익숙한 명령으로 일을 끝내려고했습니다. 네, 짐작 하셨을 것입니다.
사용 git branch -b <new_branch_name>
합니다. 그리고 이전 브랜치를 저장하지 않으려면 지금 실행 git branch -D <old_branch_name>
하여 제거하십시오.
조금 지루할 수도 있지만 이해하고 기억하기가 더 쉽습니다. 도움이 되길 바랍니다.
세 단계 만 수행하면됩니다.