2016-07-21 7 views
5

IntelliJ (2016.1.3) 및 GIT 통합 플러그인 (8.1)을 사용합니다. IntelliJ를 사용하는 동안 여러 분기를 체크 아웃했습니다. 이제 해당 브랜치가 GIT에서 삭제됩니다 (각 풀 요청 후에 삭제됩니다). 방법에가있다IntelliJ - GUI에서 로컬 고아 지점 삭제

enter image description here

: 아래

이제부터 내가 한 번 체크 아웃 (VCS> 힘내> 지점 ...에 의해) 인 IntelliJ에서 내 GIT보기에 존재하는 모든 지점에 참조 그것을 삭제하십시오 : 그것을하십시오 ... 하나씩! 가지 많은 (... 백을 가정 해 봅시다)이있는 경우, 그것은 확실히 ...

을 지루한 받고 질문 : 모든 고아를 삭제하는 간단한 방법이 있는지 당신은 알고 계십니까 IntelliJ에서이 뷰의 로컬 분기?

감사합니다 :)

편집 : "힘내 구이"나는하지만 다른 도구에서 삭제하는 방법을 발견했다. 거기에서 삭제하면 IntelliJ에서도 삭제됩니다. 또한 한 번에 여러 분기를 삭제할 수 있습니다.

답변

0

를 열고 프로젝트의 디렉토리에있는 콘솔 및 실행

그것은 origin라는 원격 저장소에 더 이상 존재하지 않는 원격 지사에 대한 로컬 참조를 제거
git remote prune origin 

.

origin이 아닌 경우 위 명령의 origin을 원격 저장소의 이름으로 바꾸십시오 (로컬 저장소에서 알 수 있음).

내가 아는 한 IntelliJ Git 플러그인을 사용하여이 목표를 달성 할 수있는 방법이 없습니다.

더 읽기에 : https://git-scm.com/docs/git-remote

+0

IntelliJ에서는 아무 것도 수행하지 않습니다. 로컬 분기가 아직 있습니다. –

+0

사실 IntelliJ IDEA에서는 아무 것도하지 않습니다. 그것은 저장소에서 않습니다. IntelliJ 플러그인은 근본적인'git' 저장소에서 정보를 새로 고쳐야하며 아마도 자체적으로 새로 고쳐지지 않습니다. OS에 따라 * Alt-9 * 또는 * Cmd-9 *를 사용하여 "버전 제어"보기를 열고 "로그"탭으로 이동하여 "새로 고침"버튼을 누르거나 IntelliJ IDEA를 다시 시작하십시오. 다음에 시작할 때 정보가 새로 고쳐집니다. – axiac

+0

문제는 pruning *이 로컬 Git 저장소의 실제 브랜치 (branch1)가 아닌 원격 추적 브랜치 * (예 :'remotes/origin/branch1') 만 제거한다는 것입니다. 이렇게하려면'git branch -D branch1'을 할 필요가 있습니다. 자세한 내용은 내 대답을 참조하십시오. –

2

나는 지역 자식 분기를 삭제하는 또 다른 방법은 벨으로 생각하고 위에서 실행하는 경우는

git branch -d branch1 branch2 branch3 branch4

, 당신의 필요 조건에 따라 당신에게 helful 수 있습니다 프로젝트 디렉토리에서 터미널에 명령을 입력하면 branch1 branch2 ... branch_n

여러분이 도움이되기를 바랍니다. 감사합니다. .

+0

답변 해 주셔서 감사합니다. 삭제하려는 지점의 이름을 모두 쉽게 수집 할 수 없다면이 작업을 수행하는 것이 좋은 방법이라고 생각하지 않습니다. IntelliJ가 GUI로 그 일을 할 수 있는지 알고 싶었습니다. –

+0

이름을 모으는 쉬운 방법은 'git branch --merged'를 실행하는 것입니다. –

4

원격 추적 분기는 일반적인 Git 분기와 쉽게 혼동됩니다. 원격 추적 브랜치는 remotes/으로 시작합니다 (remotes/origin/branch1). Git에서는 remotes/을 생략 할 수 있으므로 remotes/origin/branch1을 간단히 origin/branch1으로 참조 할 수도 있습니다. 그러나 이들은 정상적인 가지가 아닙니다. 당신은 그들에게 커밋하거나 직접 체크 아웃 할 수 없습니다. 체크 아웃을 시도하면 Git은 분리 된 HEAD를 체크 아웃하거나 자동으로 원격 브랜치와 같은 이름을 가진 새로운 로컬 브랜치를 생성합니다. branch1. 이 새로운 로컬 브랜치는 Git에게 명시 적으로 삭제하지 않는 한 삭제되지 않습니다.

은 무엇 일어나고있는 것은 두 가지이다 :

  1. 당신은 반드시 망할 놈의 치기 원격 추적 브랜치 (remotes/origin/branch1 등)인지 확인해야합니다. 기본적으로 그렇지 않습니다. 이 작업을 수행하는 방법은 this question on pruning remote tracking branches을 참조하십시오. 기본적으로 git fetch -p origin 또는 git remote prune origin입니다.

  2. 작업 할 지점을 체크 아웃 할 때 원격 추적 지점과 같은 이름의 로컬 분기를 만들었습니다. 로컬 지점 branch1은 원격 추적 지점 remotes/origin/branch1이 제거 된 경우에도 수동으로 삭제하지 않는 한 절대로 삭제되지 않으며 원격 서버에서 branch1이 삭제 된 경우 완료됩니다.

수동 git branch -d 이러한 지점을 정리 (또는 분기 병합하지 않은 경우 필요할 수있는, -D로 강제), 또는 그것을 할 수있는 자동화 된 방법을 Remove old remote branches from Git에 대한 답변을 볼 수 있습니다.

+0

설명해 주셔서 감사합니다. 그러나 나는 IntelliJ **에서 내 지사 **를 직접 지우는 방법을 찾기 위해 노력했지만, "명령 줄"도구를 사용하는 것이 아닙니다. –

+0

@GuillaumeM 알겠습니다. GUI에서 수동으로 실행하거나 배치 삭제를 위해 명령 행을 사용하십시오. –

+0

'git fetch -p origin'을 사용했고 처음에는 명령이 아무 것도하지 않은 것처럼 보였습니다. 그러나 목록이 새로 고쳐지면 이전 목록은 사라졌습니다. 나는 모두를 한번에 청소하는 것이 좋았 기 때문에 64 개를 매달 리고 있었다. 또한 원격 저장소를 참조하지 않아도 활성 분기를 삭제하지 않았는지 확인했습니다. –

관련 문제