SW/리눅스

Linux : 로컬, 원격 브랜치 삭제하는 방법, 예제, 명령어

얇은생각 2021. 5. 18. 07:30
반응형

브랜치는 일상적인 개발 프로세스의 일부이며 Git에서 가장 강력한 기능 중 하나입니다. 일단 브랜치가 통합되면, 특별한 연구 외에는 아무 소용이 없습니다. 병합이 성공한 후 브랜치를 삭제하는 것이 일반적이며 권장되는 방법입니다.

이 가이드에서는 로컬 및 원격 Git 분기를 삭제하는 방법에 대해 설명합니다.

 

 

Linux : 로컬, 원격 브랜치 삭제하는 방법, 예제, 명령어

 

 

로컬 Git 브랜치 삭제

git branch 명령을 사용하면 분기를 나열, 생성, 이름 변경 및 삭제할 수 있습니다.

로컬 Git 분기를 삭제하려면 -d(--delete) 옵션을 사용하여 git 분기 명령을 호출한 다음 분기 이름을 호출합니다.

git branch -d branch_name

# Deleted branch branch_name (was 17d9aa0).

 

 

병합되지 않은 변경 사항이 있는 분기를 삭제하려고 하면 다음과 같은 오류 메시지가 표시됩니다.

# error: The branch 'branch_name' is not fully merged.
# If you are sure you want to delete it, run 'git branch -D branch_name'.

 

 

 위의 메시지에서 알 수 있듯이 분기를 강제로 삭제하려면 --delete --force:의 바로 가기인 -D 옵션을 사용하십시오.

git branch -D branch_name

 

 

병합되지 않은 분기를 삭제하면 해당 분기의 모든 변경 내용이 손실됩니다. 

병합되지 않은 변경 내용을 포함하는 모든 분기를 나열하려면 git branch --no-merged 명령을 사용합니다.

현재 분기를 제거하려고 하면 다음 메시지가 표시됩니다.

error: Cannot delete branch 'branch_name' checked out at '/path/to/repository'

 

 

현재 사용 중인 분기는 삭제할 수 없습니다. 먼저 다른 분기로 전환한 다음 branch_name() 삭제합니다.

git checkout master
git branch -d branch_name

 

 

 

원격 Git 브랜치 삭제

Git에서 로컬 분기 및 원격 분기는 별개의 개체입니다. 로컬 분기를 삭제해도 원격 분기는 제거되지 않습니다.

원격 분기를 삭제하려면 -d(--delete) 옵션과 함께 git push 명령을 사용하십시오. 여기서 remote_name() 일반적으로 원본입니다.

git push remote_name --delete branch_name
git push origin --delete branch_name

# ...
#  - [deleted]         branch_name

 

 

원격 분기를 삭제하기 위한 대체 명령도 있습니다. 적어도 다음과 같은 명령을 기억하기 어렵습니다.

git push origin remote_name :branch_name

 

 

사용자 그룹과 함께 프로젝트를 진행하고 다른 사용자가 이미 제거한 원격 분기를 삭제하려고 하면 다음과 같은 오류 메시지가 표시됩니다.

error: unable to push to unqualified destination: branch_name The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@example.com:/my_repo'

 

 

이런 경우 브랜치 목록을 다음과 동기화해야 합니다.

git fetch -p

 

 

-p 옵션은 Git에 더 이상 원격 리포지토리에 존재하지 않는 원격 추적 참조를 모두 제거하도록 지시합니다.

반응형