etc./StackOverFlow

Git 브랜치를 로컬 및 원격으로 어떻게 삭제합니까?

청렴결백한 만능 재주꾼 2021. 9. 25. 02:02
반응형

질문자 :Matthew Rankin


로컬 및 원격에서 지점을 삭제하고 싶습니다.

원격 분기 삭제 시도 실패

 $ git branch -d remotes/origin/bugfix error: branch 'remotes/origin/bugfix' not found. $ git branch -d origin/bugfix error: branch 'origin/bugfix' not found. $ git branch -rd origin/bugfix Deleted remote branch origin/bugfix (was 2a14ef7). $ git push Everything up-to-date $ git pull From github.com:gituser/gitproject * [new branch] bugfix -> origin/bugfix Already up-to-date.

remotes/origin/bugfix 브랜치를 로컬 및 원격으로 성공적으로 삭제하려면 어떻게 해야 합니까?



답변자 : Matthew Rankin


요약

 $ git push -d <remote_name> <branch_name> $ git branch -d <branch_name>

대부분의 경우 원격 이름은 origin 입니다. 그런 경우에는 다음과 같은 명령을 사용해야 합니다.

 $ git push -d origin <branch_name>

로컬 브랜치 삭제

로컬 분기를 삭제하려면 다음 중 하나를 사용하십시오.

 $ git branch -d branch_name $ git branch -D branch_name

참고: -d --delete 의 별칭으로, 업스트림 분기에서 이미 완전히 병합된 경우에만 분기를 삭제합니다. --delete --force 의 별칭인 -D 를 사용할 수도 있습니다. 이는 "병합 상태에 관계없이" 분기를 삭제합니다. [출처: man git-branch ]
또한 현재 제거하려는 분기에 있는 경우 git branch -d branch_name 메시지는 다음 오류로 시작합니다. error: Cannot delete the branch 'branch_name' 그렇다면 먼저 다른 분기로 전환하십시오(예: git checkout main .

원격 분기 삭제 [2017년 9월 8일에 업데이트됨]

Git v1.7.0 부터 다음을 사용하여 원격 분기를 삭제할 수 있습니다.

 $ git push <remote_name> --delete <branch_name>

보다 기억하기 쉬울 수 있습니다.

 $ git push <remote_name> :<branch_name>

Git v1.5.0에 "원격 브랜치 또는 태그를 삭제하기 위해" 추가되었습니다.

Git v2.8.0 부터 --delete 의 별칭으로 -d 옵션과 함께 git push 를 사용할 수도 있습니다.

따라서 설치한 Git 버전에 따라 더 쉬운 구문 또는 더 어려운 구문을 사용해야 하는지 여부가 결정됩니다.

원격 분기 삭제 [2010년 1월 5일의 원래 답변]

Scott Chacon 의 Pro Git 3장:

원격 분기 삭제

원격 분기 작업을 완료했다고 가정합니다. 예를 들어 귀하와 귀하의 공동 작업자가 기능을 완료하고 원격의 기본 분기(또는 안정적인 코드 라인이 있는 분기)에 병합했다고 가정합니다. git push [remotename] :[branch] 사용하여 원격 분기를 삭제할 수 있습니다. 서버에서 server-fix 분기를 삭제하려면 다음을 실행합니다.

 $ git push origin :serverfix To git@github.com:schacon/simplegit.git - [deleted] serverfix

팔. 서버에 더 이상 지점이 없습니다. 해당 명령이 필요하고 구문을 잊어버릴 가능성이 높기 때문에 이 페이지에서 귀를 기울이고 싶을 수도 있습니다. 이 명령을 기억하는 방법 git push [remotename] [localbranch]:[remotebranch] 구문을 기억하는 것입니다. [localbranch] 부분을 생략하면 기본적으로 "내 편에서 아무것도 취하지 않고 [remotebranch] 만드십시오."라고 말하는 것입니다.

나는 git push origin: bugfix 발행했고 아름답게 작동했습니다. Scott Chacon이 옳았습니다. 나는 그 페이지에 귀를 기울이고 싶습니다.

그런 다음 다른 컴퓨터에서 이것을 실행해야 합니다.

 # Fetch changes from all remotes and locally delete # remote deleted branches/tags etc # --prune will do the job :-; git fetch --all --prune

변경 사항을 전파합니다.



답변자 : Eric Brotto


Matthew의 대답 은 원격 분기를 제거하는 데 훌륭하고 설명도 감사하지만 두 명령을 간단히 구분하기 위해 다음과 같이 합니다.

컴퓨터에서 로컬 분기 를 제거하려면:

git branch -d {the_local_branch} (병합 상태를 확인하지 않고 브랜치를 강제로 삭제 -D

서버에서 원격 분기 를 제거하려면:

git push origin --delete {the_remote_branch}

참조: Git: 분기 삭제(로컬 또는 원격)



답변자 : user456814


짧은 답변

다음 명령에 대한 자세한 설명을 보려면 다음 섹션의 긴 답변을 참조하십시오.

원격 브랜치 삭제

 git push origin --delete <branch> # Git version 1.7.0 or newer git push origin -d <branch> # Shorter version (Git 1.7.0 or newer) git push origin :<branch> # Git versions older than 1.7.0

로컬 브랜치 삭제

 git branch --delete <branch> git branch -d <branch> # Shorter version git branch -D <branch> # Force-delete un-merged branches

로컬 원격 추적 분기 삭제

 git branch --delete --remotes <remote>/<branch> git branch -dr <remote>/<branch> # Shorter git fetch <remote> --prune # Delete multiple obsolete remote-tracking branches git fetch <remote> -p # Shorter

긴 대답 : 삭제할 세 가지 분기가 있습니다!

로컬 및 원격에서 브랜치를 삭제할 때 세 가지 다른 브랜치가 관련되어 있음 을 명심하십시오.

  1. 로컬 브랜치 X .
  2. 원격 원점 분기 X .
  3. 원격 분기 X 추적하는 로컬 원격 추적 분기 origin/X X .

세 가지 지점의 시각화

사용된 원본 포스터:

 git branch -rd origin/bugfix

어느 단지 그의 지역의 원격 추적 브랜치 삭제 origin/bugfix , 그리고 실제 원격 지사 bugfixorigin .

다이어그램 2

실제 원격 분기를 삭제하려면 다음이 필요합니다.

 git push origin --delete bugfix

다이어그램 3

추가 세부 사항

다음 섹션에서는 원격 및 원격 추적 분기를 삭제할 때 고려해야 할 추가 세부 정보를 설명합니다.

원격 분기 삭제를 누르면 원격 추적 분기도 제거됩니다.

git push 를 사용하여 명령줄에서 원격 분기 X 를 삭제하면 로컬 원격 추적 분기 origin/X git fetch --prune 또는 git fetch -p 사용하여 더 이상 사용되지 않는 원격 추적 분기를 정리할 필요가 없습니다. git fetch -p . 그러나 어쨌든 그렇게하면 나쁠 것입니다.

다음을 실행하여 origin/X 도 삭제되었는지 확인할 수 있습니다.

 # View just remote-tracking branches git branch --remotes git branch -r # View both strictly local as well as remote-tracking branches git branch --all git branch -a

더 이상 사용되지 않는 로컬 원격 추적 분기 원점/X 잘라내기

X 를 삭제하지 않았다면 origin/X 가 여전히 포함됩니다(현재는 사용되지 않음). 예를 들어 GitHub의 웹 인터페이스를 통해 직접 원격 분기를 삭제한 경우에 이런 일이 발생할 수 있습니다.

이러한 구식 원격 추적 분기(Git 버전 1.6.6 이후)를 제거하는 일반적인 방법 --prune 또는 더 짧은 -p 와 함께 git fetch 를 실행하는 것입니다. 이렇게 하면 더 이상 remote 에 존재하지 않는 원격 분기에 대해 사용되지 않는 모든 로컬 원격 추적 분기가 제거됩니다 .

 git fetch origin --prune git fetch origin -p # Shorter

다음은 1.6.6 릴리스 노트 (강조 광산)의 관련 인용문입니다.

"git fetch"는 --all--multiple 옵션을 학습하여 많은 리포지토리에서 가져오기를 실행하고 --prune 옵션을 사용하여 오래된 원격 추적 분기를 제거합니다. 이것은 "git remote update"와 "git remote prune"을 덜 필요하게 만듭니다(하지만 "remote update"나 "remote prune"을 제거할 계획은 없습니다).

더 이상 사용되지 않는 원격 추적 분기에 대한 위의 자동 가지치기에 대한 대안

git fetch -p 통해 오래된 로컬 원격 추적 분기를 잘라내는 대신 --remote 또는 -r 플래그를 사용하여 분기를 수동으로 제거하여 추가 네트워크 작업을 방지할 수 있습니다.

 git branch --delete --remotes origin/X git branch -dr origin/X # Shorter

또한보십시오



답변자 : Alireza


분기 삭제 단계:

원격 브랜치 를 삭제하려면:

 git push origin --delete <your_branch>

로컬 브랜치 를 삭제하려면 다음 세 가지 방법이 있습니다 .

 1: git branch -D <branch_name> 2: git branch --delete --force <branch_name> # Same as -D 3: git branch --delete <branch_name> # Error on unmerge

설명: 좋아요, 여기서 무슨 일이 일어나고 있는지 설명하십시오!

git push origin --delete 원격 브랜치 삭제하고 끝에 브랜치 이름을 추가하면 삭제되고 동시에 원격 브랜치로 푸시됩니다...

또한 git branch -D 는 단순히 로컬 분기 삭제합니다!...

-D--delete --force 를 나타내며 병합되지 않은 경우에도 분기를 삭제하지만(강제 삭제) -d 는 분기 병합 상태에 따라 오류를 발생시키는 --delete

또한 단계를 보여주기 위해 아래 이미지를 만듭니다.

git에서 원격 및 로컬 분기 삭제



답변자 : pagetribe


다음을 사용하여 원격 분기를 삭제할 수도 있습니다.

 git push --delete origin serverfix

같은 일을 하는 것은

 git push origin :serverfix

그러나 기억하기가 더 쉬울 수 있습니다.



답변자 : Vivek Maru


매우 간단합니다.

원격 지점을 삭제하려면

 git push -d origin <branch-name>

또는

 git push origin :<branch-name>

-- 이 구문으로 태그를 삭제할 수도 있습니다.

로컬 브랜치를 강제로 삭제하려면

 git branch -D <branch-name>

참고: 사용되지 않는 추적 분기를 제거하려면 원격 분기를 삭제한 후 다른 컴퓨터에서 git fetch --all --prune

예시

로컬 브랜치를 제거하려면

 git branch -D my-local-branch

원격 지점을 제거하려면

 git push origin :my-remote-branch

행복한 코딩 :)



답변자 : pfrenssen


팁: 다음을 사용하여 분기를 삭제할 때

 git branch -d <branchname> # Deletes local branch

또는

 git push origin :<branchname> # Deletes remote branch

참조만 삭제됩니다. 브랜치가 실제로 원격에서 제거되더라도 팀 구성원의 로컬 리포지토리에는 여전히 브랜치에 대한 참조가 있습니다. git branch -a 수행할 때 삭제된 분기가 계속 표시된다는 것을 의미합니다.

이 문제를 해결하기 위해 팀 구성원은 다음을 사용하여 삭제된 분기를 정리할 수 있습니다.

 git remote prune <repository>

이것은 일반적으로 git remote prune origin 입니다.



답변자 : Praveen Hiremath


지점 삭제를 원하실 경우 삭제하고자 하는 지점이 아닌 다른 지점으로 먼저 체크아웃 하시면 됩니다.

 git checkout other_than_branch_to_be_deleted

로컬 브랜치 삭제:

 git branch -D branch_to_be_deleted

원격 분기 삭제:

 git push origin --delete branch_to_be_deleted


답변자 : Felipe


git branch -D <name-of-branch> git branch -D -r origin/<name-of-branch> git push origin :<name-of-branch>


답변자 : Syeful Islam


이것은 간단합니다. 다음 명령을 실행하기만 하면 됩니다.

로컬 및 원격에서 Git 브랜치를 삭제하려면 먼저 다음 명령을 사용하여 로컬 브랜치를 삭제합니다.

 git branch -d example

(여기서 example 는 브랜치 이름입니다.)

그런 다음 다음 명령을 사용하여 원격 분기를 삭제합니다.

 git push origin :example


답변자 : imanuelcostigan


또 다른 접근 방식은 다음과 같습니다.

 git push --prune origin

경고: 로컬에 존재하지 않는 모든 원격 분기가 삭제됩니다. 또는 더 포괄적으로,

 git push --mirror

원격 저장소를 저장소의 로컬 복사본처럼 효과적으로 만들 수 있습니다(로컬 헤드, 원격 및 태그는 원격에서 미러링됨).



답변자 : crizCraig


내 Bash 설정에서 다음을 사용합니다.

 alias git-shoot="git push origin --delete"

그러면 다음과 같이 전화할 수 있습니다.

 git-shoot branchname


답변자 : Rahul Gupta


로컬에서 삭제:

로컬 브랜치를 삭제하려면 다음을 사용할 수 있습니다.

 git branch -d <branch_name>

분기를 강제로 삭제하려면 -d 대신 -D 를 사용하십시오.

 git branch -D <branch_name>

원격으로 삭제:

두 가지 옵션이 있습니다.

 git push origin :branchname git push origin --delete branchname

두 번째 방법이 더 직관적이므로 사용하는 것이 좋습니다.



답변자 : Ryan Kohn


단일 명령으로 이 두 단계를 모두 완료하려면 ~/.gitconfig 아래를 추가하여 별칭을 만들 수 있습니다.

 [alias] rmbranch = "!f(){ git branch -d ${1} && git push origin --delete ${1}; };f"

또는 다음을 사용하여 명령줄에서 전역 구성에 이를 추가할 수 있습니다.

 git config --global alias.rmbranch \ '!f(){ git branch -d ${1} && git push origin --delete ${1}; };f'

참고 : -d (소문자 d)를 사용하는 경우 분기는 병합된 경우에만 삭제됩니다. 강제로 삭제하려면 -D (대문자 D)를 사용해야 합니다.



답변자 : Nacho Coloma


2013년 1월부터 GitHub는 "분기" 페이지의 각 분기 옆에 분기 삭제 버튼을 포함했습니다.

관련 블로그 게시물: 브랜치 생성 및 삭제



답변자 : mfathy00


지점을 로컬 및 원격으로 삭제하려면

  • 마스터 브랜치로 git checkout master

  • 원격 브랜치 삭제 - git push origin --delete <branch-name>

  • 로컬 브랜치 삭제 - git branch --delete <branch-name>



답변자 : nickleefly


git remote prune origin 사용하여 이 작업을 수행할 수도 있습니다.

 $ git remote prune origin Pruning origin URL: git@example.com/yourrepo.git * [pruned] origin/some-branchs

git branch -r 목록에서 원격 추적 분기를 잘라내고 삭제합니다.



답변자 : u2622


다른 답변 외에도 git_remote_branch 도구를 자주 사용합니다. 추가 설치이지만 원격 분기와 상호 작용할 수 있는 편리한 방법을 제공합니다. 이 경우 삭제하려면:

 grb delete branch

publishtrack 명령도 꽤 자주 사용합니다.



답변자 : Vinnie James


로컬 및 원격을 모두 삭제하는 한 줄짜리 명령:

 D=branch-name; git branch -D $D; git push origin :$D

또는 아래 별칭을 ~/.gitconfig 에 추가하십시오. 사용법: git kill branch-name

 [alias] kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f"


답변자 : Ulysses Alves


분기 삭제

"contact-form" 분기에 대한 작업이 완료되었고 이미 "master"에 통합했다고 가정해 보겠습니다. 더 이상 필요하지 않으므로 로컬에서 삭제할 수 있습니다.

 $ git branch -d contact-form

원격 분기를 삭제하려면 다음을 수행하십시오.

 git push origin --delete contact-form


답변자 : jayxhj


원격 지점 삭제

git push origin :<branchname>

로컬 브랜치 삭제

git branch -D <branchname>

로컬 분기 단계 삭제:

  1. 다른 지점으로 체크아웃
  2. 로컬 브랜치 삭제


답변자 : piyushmandovra


간단히 말하면:

 git branch -d <branch-name> git push origin :<branch-name>


답변자 : Mohideen bin Mohammed


로컬에서 삭제하려면 - (일반)

 git branch -d my_branch

분기가 리베이스/병합 진행 중이고 제대로 수행되지 않은 경우 Rebase/Merge in progress 오류가 발생하므로 이 경우 분기를 삭제할 수 없습니다.

따라서 리베이스/병합을 해결해야 합니다. 그렇지 않으면 다음을 사용하여 강제 삭제 를 수행할 수 있습니다.

 git branch -D my_branch

원격 에서 삭제하려면:

 git push --delete origin my_branch

다음을 사용하여 동일한 작업을 수행할 수 있습니다.

 git push origin :my_branch # Easy to remember both will do the same.

그래픽 표현:

여기에 이미지 설명 입력



답변자 : Smila


git push origin --delete <branch Name>

보다 기억하기 쉽습니다

 git push origin :branchName


답변자 : Eric


이제 GitHub 데스크톱 애플리케이션으로 이를 수행할 수 있습니다.

응용 프로그램을 시작한 후

  1. 분기가 포함된 프로젝트를 클릭합니다.
  2. 삭제하려는 브랜치로 전환

    스위칭 분기

  3. "분기" 메뉴에서 "게시 취소..."를 선택하여 GitHub 서버에서 분기를 삭제합니다.

    분기 게시 취소

  4. "분기" 메뉴에서 'Delete " branch_name "...'을 선택하여 로컬 컴퓨터(현재 작업 중인 컴퓨터 라고도 함)에서 분기를 삭제합니다.

    로컬 브랜치 삭제



답변자 : Greg


원격의 브랜치와 이름이 같은 태그가 있으면 작동하지 않습니다.

 $ git push origin :branch-or-tag-name error: dst refspec branch-or-tag-name matches more than one. error: failed to push some refs to 'git@github.com:SomeName/some-repo.git'

이 경우 태그가 아닌 분기를 삭제하도록 지정해야 합니다.

 git push origin :refs/heads/branch-or-tag-name

마찬가지로 분기 대신 태그를 삭제하려면 다음을 사용합니다.

 git push origin :refs/tags/branch-or-tag-name


답변자 : Brandon Cook


다른 많은 답변은 오류/경고로 이어질 것입니다. 예를 들어 some_other_branch 완전히 병합되지 않은 경우 git branch -D branch_to_delete 가 여전히 필요할 수 있지만 이 접근 방식은 상대적으로 완벽합니다.

 git checkout some_other_branch git push origin :branch_to_delete git branch -d branch_to_delete

원격 분기를 삭제한 경우 원격 정리가 필요하지 않습니다. 추적 중인 리포지토리에서 사용 가능한 최신 리모컨을 얻는 데만 사용됩니다. git fetch 가 리모컨을 제거하지 않고 추가하는 것을 관찰했습니다. git remote prune origin 이 실제로 뭔가를 할 때의 예입니다:

사용자 A는 위의 단계를 수행합니다. 사용자 B는 다음 명령을 실행하여 최신 원격 분기를 확인합니다.

 git fetch git remote prune origin git branch -r


답변자 : arthurakay


나는 이 답변에 대한 인터넷 검색에 지쳤으므로 이전에 crizCraig가 게시한 답변과 유사한 접근 방식을 취했습니다.

내 Bash 프로필에 다음을 추가했습니다.

 function gitdelete(){ git push origin --delete $1 git branch -D $1 }

그런 다음 분기를 완료할 때마다( master 병합됨) 터미널에서 다음을 실행합니다.

 gitdelete my-branch-name

...그런 다음 origin 과 로컬에서 my-branch-name



답변자 : jbooker


실행하기 전에

 git branch --delete <branch>

다음을 실행하여 원격 분기 의 정확한 이름이 무엇인지 먼저 확인하십시오.

 git ls-remote

<branch> 값에 정확히 무엇을 입력해야 하는지 알려줄 것입니다. ( branch 는 대소문자를 구분합니다!)



답변자 : KARTHIKEYAN.A


터미널을 사용하는 최신 문서에 따르면 다음과 같은 방법으로 삭제할 수 있습니다.

로컬에서 삭제:

 git branch -D usermanagement

원격 위치에서 삭제:

 git push --delete origin usermanagement


출처 : Here


출처 : http:www.stackoverflow.com/questions/2003505/how-do-i-delete-a-git-branch-locally-and-remotely">

반응형