programing

Git 1.7+에서 모든 원격 지점을 나열하려면 어떻게 해야 합니까?

powerit 2023. 4. 28. 21:42
반응형

Git 1.7+에서 모든 원격 지점을 나열하려면 어떻게 해야 합니까?

해봤습니다git branch -r로컬로 추적한 원격 지점만 나열됩니다.없는 항목의 목록을 어떻게 찾습니까? (명령어가 모든 원격 분기를 나열하든 추적되지 않는 항목만 나열하든 상관없습니다.)

대부분의[1] 방문자들은 "Git 1.7+에서 모든 원격 지점을 나열하는 방법은 무엇입니까?"라는 질문에 대한 정확하고 간단한 답변을 제공합니다.

git branch -r

소수를[1] 위한 git branch -r작동하지 않습니다.한다면git branch -r작동하지 않음 시도:

git ls-remote --heads <remote-name>

한다면git branch -r작동하지 않습니다. 그러면 Cascabel "기본 refspec을 수정했으므로 모든 분기를 가져오지 않습니다."라고 말할 수 있습니다.


[1] 2018-2월 이 각주의 글을 기준으로 댓글을 봤는데,git branch -r대부분(140개 약 90% 또는 125개)에서 작동합니다.

한다면git branch -r작동하지 않습니다. 확인하십시오.git config --get remote.origin.fetch와일드카드 포함(*) 답변에 따라

remote show에는 로컬로 추적되지 않는 분기와 아직 가져오지 않은 분기를 포함하여 원격의 모든 분기가 표시됩니다.

git remote show <remote-name>

또한 로컬 리포지토리와 관련된 분기의 상태를 표시합니다.

> git remote show origin
* remote origin
  Fetch URL: C:/git/.\remote_repo.git
  Push  URL: C:/git/.\remote_repo.git
  HEAD branch: master
  Remote branches:
    branch_that_is_not_even_fetched new (next fetch will store in remotes/origin)
    branch_that_is_not_tracked      tracked
    branch_that_is_tracked          tracked
    master                          tracked
  Local branches configured for 'git pull':
    branch_that_is_tracked merges with remote branch_that_is_tracked
    master                 merges with remote master
  Local refs configured for 'git push':
    branch_that_is_tracked pushes to branch_that_is_tracked (fast-forwardable)
    master                 pushes to master                 (up to date)

사용.git branch -r모든 원격 분기를 나열합니다.git branch -a로컬 및 원격의 모든 분기를 나열합니다.하지만 이 목록들은 구식이 됩니다.이 목록을 최신 상태로 유지하려면 다음을 실행합니다.

git remote update --prune

그러면 로컬 지점 목록이 원격에서 모든 새 지점 목록으로 업데이트되고 더 이상 존재하지 않는 모든 지점 목록이 제거됩니다.--prune 없이 이 업데이트 명령을 실행하면 새 분기가 검색되지만 원격에서 더 이상 삭제되지는 않습니다.

원격을 지정하여 이 업데이트를 가속화할 수 있습니다. 그렇지 않으면 추가한 모든 원격에서 업데이트를 가져옵니다.

git remote update --prune origin
git branch -a | grep remotes/*

그렇지만

git branch -ar

해야 합니다.

Git 분기 - 원격 분기

git ls-remote

Git 설명서.

당신도 할 수 있습니다.git fetch다음에git branch -r가져오기를 수행하지 않으면 최신 분기를 볼 수 없습니다.

그냥 실행git fetch지휘권모든 원격 지점을 로컬 리포지토리로 끌어다 놓고 다음 작업을 수행합니다.git branch -a모든 분기를 나열합니다.

내가 찾은 가장 간단한 방법은:

git branch -a

해보세요...

git fetch origin
git branch -a

TL;TR;

문제의 해결 방법은 다음과 같습니다.

git remote update --prune    # To update all remotes
git branch -r                # To display remote branches

또는:

git remote update --prune    # To update all remotes
git branch <TAB>             # To display all branches

Git Bash를 사용하면 다음을 사용할 수 있습니다.

git branch -a

원격 저장소에 다음 분기가 있다고 가정합니다.git branch -a제공:

*remotes/origin/release/1.5.0
 remotes/origin/release/1.5.1
 remotes/origin/release/1.5.2
 remotes/origin/release/1.5.3
 remotes/origin/release/1.6.0

명령어를 으로 함git branch -rl '*/origin/release/1.5*'다음과 같은 이점을 제공됩니다.

 origin/release/1.5.1
 origin/release/1.5.2
 origin/release/1.5.3

-r 원격의 약자입니다.

-l:를 사용<pattern>

실행하는 가장 좋은 명령은 다음과 같습니다.git remote show [remote]원격 및 로컬, 추적 및 추적되지 않은 모든 분기가 표시됩니다.

오픈 소스 프로젝트의 예는 다음과 같습니다.

> git remote show origin
* remote origin
  Fetch URL: https://github.com/OneBusAway/onebusaway-android
  Push  URL: https://github.com/OneBusAway/onebusaway-android
  HEAD branch: master
  Remote branches:
    amazon-rc2                   new (next fetch will store in remotes/origin)
    amazon-rc3                   new (next fetch will store in remotes/origin)
    arrivalStyleBDefault         new (next fetch will store in remotes/origin)
    develop                      tracked
    master                       tracked
    refs/remotes/origin/branding stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    develop merges with remote develop
    master  merges with remote master
  Local refs configured for 'git push':
    develop pushes to develop (local out of date)
    master  pushes to master  (up to date)

원격 지사를 얻고 싶다면, 우리는 사용할 수 있습니다.grep사용할 명령은 다음과 같습니다.

grep "\w*\s*(new|tracked)" -E

다음 명령을 사용합니다.

> git remote show origin | grep "\w*\s*(new|tracked)" -E
    amazon-rc2                   new (next fetch will store in remotes/origin)
    amazon-rc3                   new (next fetch will store in remotes/origin)
    arrivalStyleBDefault         new (next fetch will store in remotes/origin)
    develop                      tracked
    master                       tracked

다음 항목에 대한 별칭을 만들 수도 있습니다.

git config --global alias.branches "!git remote show origin | grep \w*\s*(new|tracked) -E"

그럼도쳐요망냥그▁run를 하면 됩니다.git branches.

인정된 답변은 저에게 효과가 있습니다.하지만 커밋을 가장 최근 것부터 정렬하는 것이 더 유용하다는 것을 알게 되었습니다.

git branch -r --sort=-committerdate

https://git-scm.com/docs/git-branch

다음을 사용합니다.

git branch -av

는 원격 분기를 하여 모든만 아니라 원격 의 목록도 표시합니다./remote하지만 그것은 또한 당신에게 제공합니다.*업데이트한 내용과 마지막 커밋 주석에 대한 피드백을 제공합니다.

목록에 있어야 하지만 나열되지 않는 원격 분기가 있는 경우 다음을 사용하여 오리진이 올바르게 설정되어 있는지 확인할 수 있습니다.

git remote show origin

문제가 없으면 업데이트를 실행해야 합니다.

git remote update

이 기능이 성공적으로 실행된다고 가정할 때, 다른 답변에 따르면 다음과 같은 작업을 수행할 수 있어야 합니다.

git branch -r

저는 제가 원하는 것을 얻기 위해 엉망진창인 쉘 파이프라인을 하게 되었습니다.방금 오리진 원격에서 분기를 병합했습니다.

git branch -r --all --merged \
    | tail -n +2 \
    | grep -P '^  remotes/origin/(?!HEAD)' \
    | perl -p -e 's/^  remotes\/origin\///g;s/master\n//g'

이 명령을 사용하여

git log -r --oneline --no-merges --simplify-by-decoration --pretty=format:"%n %Cred CommitID %Creset: %h %n %Cred Remote Branch %Creset :%d %n %Cred Commit Message %Creset: %s %n"

CommitID       : 27385d919
Remote Branch  : (origin/ALPHA)
Commit Message :  New branch created

여기에는 원격 분기에서 참조하는 커밋 메시지 및 커밋 ID를 포함한 모든 원격 분기가 나열됩니다.

나열하는 원격 원본이 실제로 원하는 리포지토리이며 이전 복제본이 아닌지 확인합니다.

이 명령을 사용하여 모든 분기를 가져옵니다.

git fetch --all

언급URL : https://stackoverflow.com/questions/3471827/how-do-i-list-all-remote-branches-in-git-1-7

반응형