Git: 로컬 지점만 나열하려면 어떻게 해야 합니까?
git branch -a에는 원격 분기와 로컬 분기가 모두 표시됩니다.
git branch -r원격 분기를 보여줍니다.
현지 지점만 나열할 수 있는 방법이 있습니까?
그저.git branch선택의 여지가 없는
맨 페이지에서:
인수를 지정하지 않으면 기존 분기가 나열되고 현재 분기가 별표로 강조 표시됩니다.
일반 명령어만 사용합니다.
git branch
git branch -a모든 지점.
git branch -r원격 분기만.
git branch로컬 분기만.
가장 간단한 방법 중 하나는
git for-each-ref --format='%(refname:short)' refs/heads/
이것은 스크립트에도 완벽하게 작동합니다.
선행 아스타리스크가 문제가 되면 파이프로 연결합니다.git branch하기와 같이
git branch | awk -F ' +' '! /\(no branch\)/ {print $2}'
이렇게 하면 헤드가 분리되었을 때 나타나는 '(분기 없음)' 라인도 제거됩니다.
다음은 동일한 이름을 가진 원격 분기가 없는 로컬 분기를 나열하는 방법입니다.
git branch | sed 's|* | |' | sort > local
git branch -r | sed 's|origin/||' | sort > remote
comm -23 local remote
로컬 분기만 목록을 가져오는 다른 방법은 다음과 같습니다.
git branch -a | grep -v 'remotes'
로컬 전용 지점을 삭제하는 방법에 대한 게시물에 대한 좋은 답변이 있습니다.여기서 다음은 로컬 분기를 나열하는 명령을 작성합니다.
git branch -vv | cut -c 3- | awk '$3 !~/\[/ { print $1 }'
답변에는 이 명령어가 어떻게 파생되었는지에 대한 훌륭한 설명이 포함되어 있으므로, 저는 당신이 가서 그 게시물을 읽는 것을 제안합니다.
Gertvdijk의 답변을 보완하기 위해 - 누군가에게 빠르게 도움이 될 경우를 대비하여 스크린샷을 몇 개 추가합니다.
Git Bash 셸에서 다음 명령을 실행할 경우:
git branch
이 명령(파라미터 없음)은 모든 로컬 분기를 표시합니다.현재 체크아웃된 분기는 매우 직관적인 별표(*) 접두사와 함께 다른 색상(녹색)으로 표시됩니다.
다음을 사용하여 원격 분기를 포함한 모든 분기를 보려고 할 때-a(모두를 나타냄) 매개 변수:
git branch -a
아직 체크아웃되지 않은 원격 분기도 다른(빨간색) 색상으로 표시됩니다.
사용:
git show-ref --heads
Gertvdijk의 대답은 가장 간결하고 우아하지만, 이것은 다음과 같은 생각을 이해하는 데 도움이 될 수 있습니다.refs/heads/*로컬 분기에 해당합니다.
대부분의 시간은refs/heads/masterref는 파일입니다..git/refs/heads/master로컬 마스터 분기의 현재 상태를 나타내는 Git 개체를 가리키는 Git commit 해시를 포함하므로 각 파일은.git/refs/heads/*로컬 분기를 나타냅니다.
PowerShell 사용자는 Compare-Object cmdlet을 사용하여 다음과 같은 작업을 수행할 수 있습니다.
function match-branch {
$localBranches = ((git branch -l) -replace "\*", "") -replace " ", ""
$remoteBranches = (((git branch -r) -replace "\*", "") -replace " ", "") -replace "origin/", ""
Compare-Object -ReferenceObject $localBranches -DifferenceObject $remoteBranches -IncludeEqual
| Select-Object @{Label = "branch"; Expression = { $_.InputObject } },
@{Label = ”both”; Expression = { $_.SideIndicator -eq "==" } },
@{Label = ”remoteOnly”; Expression = { $_.SideIndicator -eq "=>" } },
@{Label = ”localOnly”; Expression = { $_.SideIndicator -eq "<=" } }
}
출력 예제
branch both remoteOnly localOnly
------ ---- ---------- ---------
master True False False
HEAD->master False True False
renamed False True False
사용.git branch의--format로컬 분기와 구성된 분기를 표시할 수 있습니다.remote그리고.merge의 " (repo"에서할 수 ..git/config
git branch --format='%(HEAD) %(refname:short) -> %(upstream:short)'
에서 사용되는 형식 문서를 참조하십시오.
로 추수있다니에 할 수 .~/.gitconfig
[alias]
[...]
brem = branch --format='%(HEAD) %(refname:short) -> %(upstream:short)'
[...]
예
- 5개의 지역 지점이 있습니다.
- 개의 위치가 : 두가지원위있습다니치가격.
origin그리고.upstream - 지점 이름은 로분기름지정입니다.
upstream에 밀어넣거나 밀어넣도록 구성되어 있습니다.upstream의main - 지점 이름은 로분기름지정입니다.
test에도 푸시되지 않습니다.
> git branch --format='%(HEAD) %(refname:short) -> %(upstream:short)'
* main -> origin/main
release/v0.01 -> origin/release/v0.01
release/v0.02 -> origin/release/v0.02
test ->
upstream -> upstream/main
언급URL : https://stackoverflow.com/questions/12370714/git-how-do-i-list-only-local-branches
'programing' 카테고리의 다른 글
| 셀을 편집할 때 키를 눌렀을 때 발생하는 이벤트가 있습니까? (0) | 2023.05.28 |
|---|---|
| __init__ 외부에 새 특성 생성 금지 (0) | 2023.05.28 |
| 스위프트에서 오브젝티브-C 코드를 어떻게 부르나요? (0) | 2023.05.28 |
| http 핸들러 인터페이스에서 boolIsReuseable의 중요성 (0) | 2023.05.23 |
| node.js에 대한 사용자 인증 라이브러리? (0) | 2023.05.23 |

