스택큐힙리스트

어떻게 모든 Git 브랜치를 가져올 수 있나요? 본문

카테고리 없음

어떻게 모든 Git 브랜치를 가져올 수 있나요?

스택큐힙리스트 2023. 3. 24. 06:47
반응형

Git 레포지토리를 클론하여 많은 브랜치가 포함되어 있었습니다. 그러나 짜증나는 것은 하나만 보입니다.

$ git branch

* master

어떻게 하면 모든 브랜치를 로컬로 가져와서 git branch 하는 경우 다음을 보여줄까요?

$ git branch

* master

* staging

* etc...

답변 1

간략한 요약 답변

git branch -r | grep -v '\->' | sed s,\x1B\[[0-9;]*[a-zA-Z],,g | while read remote; do git branch --track ${remote#origin/} $remote; done

git fetch --all

git pull --all

(모든 원격 저장소에서 모든 브랜치를 가져 오는 것 같지만, 확실하게 하기 위해 항상 먼저 fetch를 실행합니다.)

만약 로컬 브랜치에서 추적되지 않은 원격 브랜치가 서버에 있다면 첫 번째 명령어만 실행하세요.

완전한 대답

이렇게하면 모든 리모트에서 모든 브랜치를 가져올 수 있습니다.

git fetch --all

기본적으로 이건 power move입니다.

fetch은 원격 브랜치의 로컬 사본을 업데이트하므로 로컬 브랜치에 대해서는 항상 안전합니다. 그러나:

# $$ @ * @ && $ & 로컬 브랜치 (원격 브랜치를 추적하는)를 업데이트하지 않습니다. 로컬 브랜치를 업데이트하려면 모든 브랜치를 pull해야합니다.

fetch 지역 브랜치를 생성하지 않습니다(원격 브랜치를 추적), 이것을 수동으로 수행해야합니다. 모든 원격 브랜치를 나열하려면 : git branch -a

원격 브랜치를 추적하는 로컬 브랜치를 업데이트하려면:

git pull --all

그러나 이것은 여전히 부족할 수 있습니다. 원격 브랜치를 추적하는 로컬 브랜치만 작동합니다. 모든 원격 브랜치를 추적하려면 이 원 라이너를 실행하십시오. git pull --all 이전에.

git branch -r | grep -v '\->' | sed s,\x1B\[[0-9;]*[a-zA-Z],,g | while read remote; do git branch --track ${remote#origin/} $remote; done

참고로, AFAIK git fetch --all와 git remote update는 동등합니다.

카밀 쇼트의 comment는 사람들이 유용하게 사용하는 것으로 알려졌습니다.

제가 사용해야했던 것은:

for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done

당신의 코드 때문에 origin/branchname 라는 지역 브랜치가 생성되었고, 저는 이를 참조할 때 refname 'origin/branchname' is ambiguous 라는 오류가 발생했습니다.

답변 2

Git 브랜치를 모두 가져 오는 방법은 무엇인가요?

Git은 협업 개발 및 버전 관리 프로세스에서 매우 인기 있는 도구입니다. 이것은 대규모 프로젝트에서 작업하여 작업을 분리하고 추적할 수 있는 유용한 방법입니다. 그러나 Git을 사용하여 브랜치를 만들면 어떻게 가져와야 할지 궁금할 수 있습니다.

간단한 Git 명령어를 사용하여 깃 브랜치를 모두 검색하고 가져올 수 있습니다. 이를 수행하려면 로컬 리파지토리에서 다음 명령어를 실행하십시오.

```

$ git branch

```

이 명령은 현재 리파지토리에 있는 모든 브랜치를 보여줍니다. 또한 활성 브랜치, 즉 현재 체크 아웃 한 브랜치를 훌륭하게 강조 표시합니다. Git을 사용하여 브랜치를 생성하면 이러한 브랜치가 모두 표시됩니다. 그러나 다른 리모트 리파지토리에서 생성한 브랜치는 로컬에 아직 없을 수 있습니다.

주어진 리모트 브랜치를 로컬 리파지토리로 가져 오려면 다음 명령을 실행하십시오.

```

$ git checkout

```

이 명령은 로컬 리파지토리에 로컬 리파지토리의 현재 브랜치와 같은 이름의 새 브랜치를 만듭니다. 이 새 브랜치는 현재 작업 디렉토리와 동일한 시점에서 리모트 브랜치에서 만들어 졌으므로 전체 이력과 함께 가져옵니다.

결론적으로 Git 브랜치를 모두 가져 오려면 git branch 명령을 사용하십시오. 이 명령은 모든 로컬 브랜치를 보여주며, 로컬 컴퓨터에 없는 리모트 브랜치의 경우 git checkout 명령을 사용하여 가져올 수 있습니다. 이를 통해 협업 프로젝트에서 작업하고 관리하는 프로세스를 효율적으로 관리할 수 있습니다.

반응형
Comments