2013-07-28 1 views
1

에게 git branch을 위해 :경고 메시지 : 삭제 된 지점의 피부이었다 (...) 매뉴얼 페이지에서

분기를 삭제합니다. 분기는 업스트림 브랜치에서 완전히 병합되어야하며, 업스트림이 --track 또는 --set-upstream로 설정되지 않은 경우 HEAD에 완전히 병합되어야합니다.

$ git branch -d skin 
warning: deleting branch 'skin' that has been merged to 
    'refs/remotes/origin/skin', but not yet merged to HEAD. 
Deleted branch skin (was 1f97b5b). 

$ git remote -v 
origin [email protected]:me/Banana.git (fetch) 
origin [email protected]:me/Banana.git (push) 
upstream [email protected]:others/Banana.git (fetch) 
upstream [email protected]:others/Banana.git (push) 

피부 지점

실제로 (로컬) 제거하지만 난 경고 메시지가을 무엇을 의미하는지 이해 에 노력했다. 브랜치는 기원업스트림에서 예상대로 사용할 수 있습니다.

+0

로컬로 현재 분기에 병합하지 않았습니까? – Ryan

+0

미리보기를 위해 origin에서 'skin' 브랜치를 체크 아웃했습니다. 나는 그 일을 국부적으로하는 것을 의미하지는 않았다. 그 후, 나는 아무것도하지 않고 앉아있는 것보다는 그것을 지우겠습니다. 따라서 나는이 경고를 보았습니다. – moey

+0

그래서 병합되지 않습니다. 괜찮습니다. 단지 경고 일 뿐이므로 적용하지 않을 경우 무시해도됩니다. – Ryan

답변

0

경고는 의미하는 바를 의미합니다. git을 삭제하라는 브랜치 이름은 HEAD의 조상이 아닙니다. 어떤 지점 (예 : master)이던간에 skin은 해당 분기의 "일부"가 아닌 커밋을 명명했습니다. 그러나 skin이라는 이름은 추적 지점 이름이었으며 추적 지점의 "일부"인 커밋의 이름으로 지목 레이블을 제거했습니다.

커밋 할 지점 레이블은 1f97b5b입니다. SHA-1 E 커밋의이 1f97b5b입니다

A --- B --- C  <-- HEAD, master, origin/master 
     \ 
      D --- E <-- skin, origin/skin 

: 그것은 1f97b5b-origin/skin또한 포인트 (또는 뾰족한가), 즉, 커밋 트리 이런 식으로 뭔가를 보았다 가능성이 높습니다. 그러나 skinorigin/skin보다 커밋 또는 그 이후 일 수 있으므로 1f97b5b은 커밋 D 또는 B 또는 A의 ID입니다. 중요한 것은 origin/skin부터 시작하여 커밋 트리를 따라 뒤로 작업하고 커밋을 찾을 수 있다는 것입니다 1f97b5b이므로, 1f97b5b을 가리키는 레이블을 삭제하는 것이 "안전합니다"라고 표시됩니다.

+0

"추적 지점"은 원격 지점 즉 순수한 로컬 지점이없는 지점의 용어라고 가정합니다. – moey

+1

'git config branch.L.remote'가 원격 이름 (원점처럼)으로 설정되고'git config branch.L.merge'가 가지고 있다면, 로컬 브랜치 L은 원격 브랜치 R을 "추적"합니다 (이름은 일치 할 필요가 없습니다) 참조 이름 또한 http://stackoverflow.com/questions/520650/how-do-you-make-an-existing-git-branch-track-a-remote-branch – torek

+0

나는 L과 R이 필요하지 않다는 것을 알지 못했다. 같은 이름을 지어 라. 그리고 링크에 감사드립니다 (+1). – moey