it-swarm-ko.tech

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

로컬 및 원격으로 분기를 삭제하려고합니다.

실패한 원격 지점 삭제 시도 :

$ 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 분기를 로컬 및 원격으로 성공적으로 삭제하려면 어떻게해야합니까?

15136
Matthew Rankin

행정상 개요

$ git Push --delete <remote_name> <branch_name>
$ git branch -d <branch_name>

대부분의 경우 원격 이름은 Origin입니다.

지사 삭제

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

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

참고 : -d 옵션은 --delete의 별칭으로, 분기가 이미 완전히 병합 된 경우에만 분기를 삭제합니다. 그것의 상류 지점. -D의 별칭 인 --delete --force을 사용하여 "병합 상태에 관계없이"분기를 삭제합니다. [출처 : man git-branch]

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

Git v1.7. 부터 원격 분기를 삭제할 수 있습니다 사용

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

어느 것보다 기억하기 쉬울 수 있습니다

$ git Push <remote_name> :<branch_name>

Git v1.5. "원격 지사 또는 태그를 삭제하기 위해 추가되었습니다."

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

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

원격 지점 삭제 [2010 년 1 월 5 일의 원본 답변]

Scott Chacon의 Pro Git 3 장에서 :

원격 지점 삭제

원격 지사가 완료되었다고 가정합니다. 사용자와 공동 작업자가 기능을 마치고이를 원격의 마스터 지사 (또는 안정적인 코드 라인이있는 지사)로 병합했다고 가정합니다. 다소 둔감 한 구문 git Push [remotename] :[branch]을 사용하여 원격 브랜치를 삭제할 수 있습니다. 서버에서 서버 수정 분기를 삭제하려면 다음을 실행하십시오.

$ git Push Origin :serverfix
To [email protected]:schacon/simplegit.git
 - [deleted]         serverfix

팔. 서버에 더 이상 지점이 없습니다. 해당 명령이 필요하고 구문을 잊어 버릴 수 있으므로이 페이지를보고 싶어 할 수 있습니다. 이 명령을 기억하는 방법은 이전에 살펴본 git Push [remotename] [localbranch]:[remotebranch] 구문을 상기시키는 것입니다. [localbranch] 부분을 벗어나면 기본적으로 "내 편에 아무것도 가지지 말고 [remotebranch]"로 만드십시오.

git Push Origin :bugfix을 (를) 발행했으며 아름답게 작동했습니다. Scott Chacon이 옳았습니다. dog ear 해당 페이지 (또는 Stack Overflow에서 이에 대한 답변을 통해 사실상 dog ear)를 원합니다.

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

git fetch --all --Prune

변경 사항을 전파합니다.

19710
Matthew Rankin

Matthew의 대답은 {원격 브랜치를 지우는 데 아주 좋으며 설명에 감사하지만 두 명령을 간단하게 구분할 수 있습니다.

컴퓨터에서로컬 분기을 제거하려면 다음을 수행하십시오.

git branch -d {the_local_branch} (병합 된 상태를 확인하지 않고 분기를 강제로 삭제하려면 -D를 대신 사용하십시오)

서버에서원격 분기를 제거하려면 다음을 수행하십시오.

git Push Origin --delete {the_remote_branch}

참조 : https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

3016
Eric Brotto

짧은 답변

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

원격 브랜치 삭제 :

git Push Origin --delete <branch>  # Git version 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 tracking branches
git fetch <remote> -p      # Shorter

긴 대답 : 삭제할 3 가지 가지가 있습니다!

로컬 및 원격으로 분기를 삭제하는 경우 세 가지 분기가 관련됨 :

  1. 로컬 지점 X.
  2. 원격 원점 분기 X.
  3. 원격 분기 X을 추적하는 로컬 원격 추적 분기 Origin/X.

Visualization of 3 branches

사용 된 원래 포스터

git branch -rd Origin/bugfix

bugfix의 실제 원격 브랜치 Origin이 (가) 아닌 로컬 원격 추적 브랜치Origin/bugfix 만 삭제했습니다.

Diagram 2

실제 원격 지점을 삭제하려면

git Push Origin --delete bugfix

Diagram 3

추가 세부 사항

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

원격 브랜치를 삭제하도록 누르면 원격 추적 브랜치도 삭제됩니다.

git Push를 사용하여 명령 줄에서 원격 분기 X을 (를) 삭제하면 로컬 원격 추적 분기도 삭제됩니다Origin/Xgit fetch --Prune 또는 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

더 이상 사용되지 않는 로컬 원격 추적 분기 Origin/X 정리

위와 같이 명령 줄에서 원격 지점 X을 (를) 삭제하지 않은 경우 로컬 리포지토리에는 여전히 원격 추적 지점 Origin/X가 포함됩니다 (현재 사용되지 않음). 예를 들어 GitHub의 웹 인터페이스를 통해 원격 브랜치를 직접 삭제 한 경우에 발생할 수 있습니다.

이 구식 원격 추적 브랜치를 제거하는 일반적인 방법 (Git 버전 1.6.6부터)은 git fetch 또는 더 짧은 --Prune-p를 실행하는 것입니다. 이것은 더 이상 원격에 존재하지 않는 원격 분기에 대해 더 이상 사용되지 않는 로컬 원격 추적 분기를 제거합니다 :

git fetch Origin --Prune
git fetch Origin -p # Shorter

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

"git fetch"learn--all--multipleoptions, 여러 리포지토리에서 페치 실행 및 --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

참조

1782
user456814

브랜치를 삭제하는 단계 :

원격 분기 삭제 :

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를 사용하여 각각 오류를 발생시킵니다. 지점 병합 상태 ...

또한 아래 이미지를 만들어 단계를 보여줍니다.

delete a remote and local branch in git

1391
Alireza

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

git Push --delete Origin serverfix

같은 것은

git Push Origin :serverfix

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

746
pagetribe

분기를 삭제하려면 먼저 삭제할 분기가 아닌 다른 분기로 체크 아웃하십시오.

git checkout other_than_branch_to_be_deleted

로컬 분기 삭제 :

git branch -D branch_to_be_deleted

원격 분기 삭제 :

git Push Origin --delete branch_to_be_deleted
357
Praveen Hiremath

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

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입니다.

352
pfrenssen
git branch -D <name-of-branch>
git branch -D -r Origin/<name-of-branch>
git Push Origin :<name-of-branch>
256
Felipe

이것은 간단합니다. 다음 명령을 실행하십시오 :

Git 브랜치를 로컬과 원격으로 삭제하려면 먼저 다음 명령을 사용하여 로컬 브랜치를 삭제하십시오.

git branch -d example

(여기에 example은 지점 이름 임)

그리고 그 후 명령을 사용하여 원격 지점 삭제 :

git Push Origin :example
220
Syeful Islam

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

git Push --Prune Origin

경고 :로컬에 존재하지 않는 모든 원격 브랜치를 삭제합니다. 또는 더 포괄적으로,

git Push --mirror

원격 저장소를 저장소의 로컬 복사본처럼 보이게 만듭니다 (로컬 헤드, 원격 및 태그는 원격지에서 미러링 됨).

191
imanuelcostigan

Bash settings에서 다음을 사용합니다.

alias git-shoot="git Push Origin --delete"

그럼 당신은 전화 할 수 있습니다 :

git-shoot branchname
160
crizCraig

2013 년 1 월 이후 GitHub에는 Delete branch 버튼을 클릭하십시오.

관련 블로그 게시물 : 분기 만들기 및 삭제

128
Nacho Coloma

단일 명령으로이 두 단계를 완료하려면 다음을 ~/.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'

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

119
Ryan Kohn

로컬 삭제 :

로컬 분기를 삭제하려면 다음을 사용할 수 있습니다.

git branch -d <branch_name> 

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

git branch -D <branch_name>

원격 삭제 :

두 가지 옵션이 있습니다.

git Push Origin :branchname  

git Push Origin --delete branchname 

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

118
Rahul Gupta

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

  • 마스터 분기 체크 아웃 - git checkout master

  • 원격 지점 삭제 - git Push Origin --delete <branch-name>

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

111
mfathy00

git remote Prune Origin를 사용하여이 작업을 수행 할 수도 있습니다

$ git remote Prune Origin
Pruning Origin
URL: [email protected]/yourrepo.git
 * [pruned] Origin/some-branchs

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

106
nickleefly

다른 답변 외에도 종종 git_remote_branch 도구를 사용합니다. 추가 설치이지만 원격 지점과 상호 작용할 수있는 편리한 방법을 제공합니다. 이 경우 다음을 삭제하십시오.

grb delete branch

나는 또한 자주 publishtrack 명령을 사용한다는 것을 알았습니다.

102
u2622

하나의 라이너 명령 삭제 모두 로컬 및 원격 :

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"
92
Vinnie James

브랜치 삭제

지점 "contact-form"에 대한 우리의 작업이 완료되었다고 가정하고 이미이를 "마스터"에 통합 시켰습니다. 더 이상 필요하지 않으므로 삭제할 수 있습니다 (로컬).

$ git branch -d contact-form

그리고 원격 브랜치를 삭제하기 위해서 :

git Push Origin --delete contact-form
90
Ulysses Alves

원격 지점 삭제

git Push Origin :<branchname>

로컬 분기 삭제

git branch -D <branchname>

로컬 분기 단계 삭제 :

  1. 다른 지점으로의 결제
  2. 로컬 브랜치 삭제
86
jayxhj

간단히 말해서 :

git branch -d <branch-name>
git Push Origin :<branch-name>
85
piyushmandovra

이제 GitHub Desktop app를 사용하여이 작업을 수행 할 수 있습니다.

앱 실행 후

  1. 분기가 포함 된 프로젝트를 클릭하십시오.
  2. 삭제할 지점으로 전환  switching branch
  3. "Branch"메뉴에서 "Unpublish ..."를 선택하여 GitHub 서버에서 분기를 삭제하십시오.  unpublish branch
  4. "Branch"메뉴에서 'Delete " branch_name "... "을 선택하여 로컬 시스템 (현재 작업중인 시스템)에서 분기를 삭제하십시오.  delete local branch
79
Eric
git Push Origin --delete <branch Name>

보다 기억하기 쉽다.

git Push Origin :branchName
78
Smila

로컬 삭제 - (일반),

git branch -d my_branch

분기 재배포/병합에서 분기가 제대로 수행되지 않았다는 것을 의미하면 Rebase/Merge in progress 오류가 발생하므로 분기를 삭제할 수 없습니다.

따라서 rebase/merging을 해결할 필요가 있거나 그렇지 않으면 Delete를 사용하여 강제로 삭제할 수 있습니다.

git branch -D my_branch

원격에서 삭제하려면 :

git Push --delete Origin my_branch

같은 것을 할 수 있습니다,

git Push Origin :my_branch   # easy to remember both will do the same.

그래픽 표현,

 enter image description here

73
Silent Spectator

리모컨의 브랜치와 이름이 같은 태그가있는 경우에는 작동하지 않습니다.

$ 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 '[email protected]:SomeName/some-repo.git'

이 경우 태그가 아니라 지점을 삭제하도록 지정해야합니다.

git Push Origin :refs/heads/branch-or-tag-name

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

git Push Origin :refs/tags/branch-or-tag-name
64
Amiramix

다른 많은 대답은 오류/경고로 이어질 것입니다. 이 접근법은 비교적 어리석은 증거이지만, 예를 들어 git branch -D branch_to_delete에 완전히 병합되지 않은 경우 some_other_branch가 여전히 필요할 수도 있습니다.

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
50
Brandon Cook

나는이 답변을 찾기 위해 싫증이났다. 그래서 나는 비슷한 접근법을 취했다 crizCraig가 올린 대답 더 일찍.

배쉬 프로파일에 다음을 추가했습니다 :

function gitdelete(){
    git Push Origin --delete $1
    git branch -D $1
}

그런 다음 (예를 들어, master에 병합 된) 지점을 다 처리 할 때마다 터미널에서 다음을 실행합니다.

gitdelete my-branch-name

... 그러면 로컬에서뿐만 아니라 Origin에서 my-branch-name가 삭제됩니다.

49
arthurakay

실행하기 전에

git branch --delete <branch>

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

git ls-remote

이렇게하면 <branch> 값을 정확히 입력 할 수 있습니다. (branch은 대소 문자를 구별합니다!)

45
joey
git Push Origin :bugfix  # Deletes remote branch
git branch -d bugfix     # Must delete local branch manually

삭제하고 싶다면 다음을 실행하십시오.

git branch -D bugfix

이제 삭제 된 원격 지점을 정리합니다.

git remote Prune Origin
44
Vivek

다른 모든 답변의 매쉬업. OS X에서 Ruby 1.9.3+, 테스트 됨 전용 필요.

이 파일을 git-remove라고 부르며, 실행 파일로 만들어 경로에 넣으십시오. 그런 다음 예를 들어 git remove temp를 사용하십시오.

#!/usr/bin/env Ruby
require 'io/console'

if __FILE__ == $0
      branch_name = ARGV[0] if (ARGV[0])
      print "Press Y to force delete local and remote branch #{branch_name}..."
    response = STDIN.getch
    if ['Y', 'y', 'yes'].include?(response)
      puts "\nContinuing."
      `git branch -D #{branch_name}`
      `git branch -D -r Origin/#{branch_name}`
      `git Push Origin --delete #{branch_name}` 
    else
      puts "\nQuitting."
    end
end
43
Dan Rosenstark

.gitconfig 파일에 다음 별칭을 추가했습니다. 이를 통해 분기 이름을 지정하거나 지정하지 않고 분기를 삭제할 수 있습니다. 인수가 전달되지 않으면 분기 이름의 기본값은 현재 분기입니다.

[alias]
    branch-name = rev-parse --abbrev-ref HEAD     

    rm-remote-branch = !"f() { branch=${1-$(git branch-name)}; git Push Origin :$branch; }; f"
    rm-local-branch = !"f() { branch=${1-$(git branch-name)}; git checkout master; git branch -d $branch; }; f"
    rm-branch-fully = !"f() { branch=${1-$(git branch-name)}; git rm-local-branch $branch; git rm-remote-branch $branch; }; f"
39
Jared Knipp

나는 또한 비슷한 문제가 있었는데, 이것은 작동하는 것 같습니다 : 이것은 로컬 브랜치를 삭제합니다. git branch -d the_local_branch

원격 지점 git Push Origin :the_remote_branch가 제거됩니다.

출처 : 마산드라 카드

30
Srijan Karki

좋은 답변이 있지만, 많은 수의 지사를 가지고있는 경우, 로컬로 그리고 원격으로 하나씩 지울 경우 지루한 작업이됩니다. 이 스크립트를 사용하여이 작업을 자동화 할 수 있습니다.

branch_not_delete=( "master" "develop" "our-branch-1" "our-branch-2")


for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master`; do

    # delete prefix remotes/Origin/ from branch name
    branch_name="$(awk '{gsub("remotes/Origin/", "");print}' <<< $branch)"

    if ! [[ " ${branch_not_delete[*]} " == *" $branch_name "* ]]; then
        # delete branch remotly and locally
        git Push Origin :$branch_name
    fi
done 
  • 삭제하지 않으려는 지점을 나열하십시오.
  • 리모트 브랜치를 반복 해, 「보존리스트」에없는 경우는 삭제했다.

출처 : 제거 - 자식 - 한 번에 분기

28
levi

GitBash 를 사용하면 다음을 실행할 수 있습니다.

git branch --delete <branch>

OR

GitHub 데스크톱 앱에서 지점을 체크 아웃하면 Branch 메뉴 스트립을 통해 Local 지점을 삭제할 수 있습니다 :

enter image description here

GitHub 데스크톱 앱을 사용하고 있고 NOT NOT 로컬 로컬 컨트롤에 Visual Studio와 같은 IDE를 사용하고 있다면 몇 가지 빠른 단계가 필요합니다.

  1. 삭제하려는 분기 이외의 분기를 확인하십시오.
  2. 삭제할 지점을 마우스 오른쪽 단추로 클릭하십시오.
  3. 상황에 맞는 메뉴에서 Delete 옵션을 선택하십시오.

그런 다음 온라인으로 GitHub 계정에 로그인 한 후 저장소로 이동하여 모든 지점 탭을 클릭하십시오. 거기에서 삭제하려는 브 래치 이름 오른쪽에있는 작은 휴지통 아이콘을 클릭하십시오.

enter image description here

* 명심하십시오-지점이 게시되지 않은 경우 온라인 저장소에서 삭제하지 않아도됩니다.

23
Uchiha Itachi

.bash_aliases 파일에 다음과 같은 편리한 함수를 만들었습니다.

git-delete-branch() 
{ 
    if [[ -n $1 ]]; then
        git checkout master > /dev/null;
        branch_name="$1";
        echo "Deleting local $branch_name branch...";
        git branch -D "$branch_name";
        echo "Deleting remote $branch_name branch...";
        git Push Origin --delete "$branch_name";
        git remote Prune Origin;
        echo "Your current branches are:";
        git branch -a;
    else
        echo "Usage: git-delete-branch <branch_name>";
    fi
}
19
Vagelis Prokopiou

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

로컬에서 삭제 :

git branch -D usermanagement

원격 위치에서 삭제 :

git Push --delete Origin usermanagement
19
KARTHIKEYAN.A

매우 간단하다.

원격 브랜치를 삭제하려면

git Push -d Origin <branch-name>

OR

git Push Origin :<branch-name>

로컬 브랜치를 삭제하려면

git branch -D <branch-name>
15
Vivek Maru