git 로컬 브랜치의 이름을 변경하고, Remote 저장소에서 변경된 브랜치 이름을 반영하는 방법을 소개합니다.
1. 로컬 브랜치 이름 변경
-m
또는 -M
옵션을 사용하여 어떤 브랜치의 이름을 새로운 이름으로 변경할 수 있습니다.
git branch (-m | -M) [<oldbranch>] <newbranch>
예를 들어, 아래와 같이 dev
브랜치를 new_dev
브랜치로 이름을 변경할 수 있습니다.
$ git branch
dev
* master
$ git branch -m dev new_dev
$ git branch
* master
new_dev
1.1 branch 명령어의 -m과 -M 옵션의 차이점
-m
은 --move
의 약자로, 브랜치의 이름을 변경합니다. 만약 이미 존재하는 브랜치의 이름으로 변경하려고 하면 에러와 함께 실패합니다.
$ git branch
dev
* master
new_dev
$ git branch -m dev new_dev
fatal: A branch named 'new_dev' already exists.
$ git branch
dev
* master
new_dev
반면에 -M
은 --move --force.
의 약자로, 브랜치의 이름을 변경할 때 이미 존재하는 브랜치가 있어도 무시하고 변경합니다.
$ git branch
dev
* master
new_dev
$ git branch -M dev new_dev
$ git branch
* master
new_dev
2. Remote 저장소에 old branch 삭제 및 new branch 등록
로컬에서 old branch를 new branch로 변경했다면, Remote 저장소에도 변경사항을 적용해야 합니다.
2.1 Remote에서 old branch 삭제
old branch가 new branch로 이름이 변경되었기 때문에, old branch가 삭제되고 new branch가 추가되었다고 볼 수 있습니다.
아래와 같이 git push origin :[old branch]
명령어로 로컬에서 제거된 old branch를 Remote에서도 제거할 수 있습니다.
$ git branch -a
* master
old_branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/old_branch
$ git branch -m old_branch new_branch
$ git branch -a
* master
new_branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/old_branch
$ git branch -a
* master
new_branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/old_branch
$ git push origin :old_branch
To github.com:codechacha/algorithms.git
- [deleted] old_branch
$ git branch -a
* master
new_branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
2.2 Remote에 new branch 등록
다음과 같이 git push --set-upstream origin [new branch]
명령어로 new branch를 Remote에 등록할 수 있습니다.
$ git branch -a
* master
new_branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
$ git push --set-upstream origin new_branch
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'new_branch' on GitHub by visiting:
remote: https://github.com/codechacha/algorithms/pull/new/new_branch
remote:
To github.com:codechacha/algorithms.git
* [new branch] new_branch -> new_branch
Branch 'new_branch' set up to track remote branch 'new_branch' from 'origin'.
$ git branch -a
* master
new_branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/new_branch
관련 문서
Loading script...
Related Posts
- Git Alias - 단축/커스텀 명령어 설정
- Git에서 .gitignore 설정 방법
- git clone 명령어로 원격 저장소를 로컬에 저장
- Git - 두개 commit의 차이점 확인 (코드 차이, 파일 차이)
- Git - 브랜치 이름 변경하는 방법
- Git - 특정 commit 삭제, 되돌리기 (reset, revert)
- Git - 리모트 브랜치 생성과 삭제
- GitHub에 ssh-key 등록 방법 (Windows10)
- git log - 특정 author의 commit 리스트만 출력
- git log - commit 리스트 간단하게 출력 (pretty)
- Git - revert 명령어(commit 되돌리기)
- git diff 명령어로 파일 변경 내용 확인
- git show 명령어로 commit 정보 확인
- Git - 브랜치 생성, 삭제, 체크아웃
- Git - 원격 저장소(remote) 추가, 해제
- Git - Staging 영역의 파일을 Untracked로 변경
- Git - commit log에서 수정된 파일 목록 보기
- Git - 마지막 commit 수정, 삭제 방법 (reset, amend 명령어)
- git commit message 에디터 변경 (Vim, Sublime, Atom, VSCode)
- Git - blame 명령어, 코드 수정한 사람과 Commit 찾기
- Git - Patch 파일 만들기 & 적용하기