원격 Git 브랜치를 체크아웃하는 방법
게시 됨: 2023-01-23개발 팀에서 Git을 사용하는 경우 결국 다른 사람의 작업을 원격 저장소에서 분기로 체크아웃해야 합니다. Git의 대부분의 분기 작업과 마찬가지로 원격 분기로 전환하는 것은 실제로 매우 간단합니다.
Git, 브랜치 및 원격
현지 지점 찾기
원격 브랜치 체크아웃
이름 충돌 처리
여러 원격 저장소 처리
결제하기 전에
Git, 브랜치 및 원격
Git 철학은 자주 분기하는 것입니다. 분기를 사용하면 기본 코드 베이스를 변경하지 않고도 개발을 수행할 수 있습니다. 테스트된 새 코드가 준비되었다고 만족하면 새 분기를 다른 분기에 병합합니다. 일반적으로 이것은 기본 또는 마스터 분기이지만 두 분기를 병합할 수 있습니다.
이러한 유연성과 Git이 분기 및 병합을 처리하는 가볍고 빠른 방식으로 인해 분기가 변형되었습니다. 이전 버전 제어 시스템에서는 분기가 큰 문제였습니다. 분기 및 병합이 느리고 오류가 발생하기 쉽습니다. Git은 개발자에게 다양한 워크플로를 뒷받침하는 데 사용되는 쉽고 빠른 분기를 제공했습니다.
Git을 사용하는 개발 팀의 일원으로 일하거나 자원 봉사하는 경우 각 소프트웨어 엔지니어의 컴퓨터에서 원격으로 "중앙" Git 리포지토리를 갖게 됩니다. 이를 원격 저장소 또는 "원격"이라고 합니다. 푸시를 수행할 때 로컬 리포지토리에 대한 커밋 및 변경 사항이 전송되는 곳입니다.
물론 다른 개발자들도 그렇게 하고 있습니다. 이렇게 하면 협업이 쉬워집니다. 다른 개발자의 작업에 액세스해야 하는 경우 원격 저장소의 분기에서 해당 코드를 검색하기만 하면 됩니다. 작업에 액세스해야 하는 경우 로컬 브랜치 중 하나를 추적하는 리포지토리의 브랜치에서 코드를 검색합니다.
Git에서 개발 프로젝트는 여러 개의 원격을 가질 수 있습니다. 그러나 로컬 분기는 단일 원격 분기만 추적할 수 있습니다. 따라서 적절한 원격으로 작업하는 한 여러 원격으로 원격 분기를 체크아웃하는 것은 단일 원격을 사용하는 것과 동일합니다.
현지 지점 찾기
이름 충돌을 피해야 합니다. 체크아웃하려는 원격 브랜치와 이름이 같은 로컬 브랜치가 있는 경우 두 가지 옵션이 있습니다. 로컬 브랜치의 이름을 바꾸고 원격 브랜치를 체크아웃할 수 있습니다. 이렇게 하면 원격 분기를 추적하는 로컬 분기가 원격 분기와 동일한 이름을 갖게 됩니다. 또는 원격 브랜치를 체크아웃하고 Git에게 새 이름으로 로컬 추적 브랜치를 생성하도록 지시할 수 있습니다.
로컬 저장소의 브랜치 이름을 찾으려면 git branch
명령을 사용하십시오.
자식 분기
이 로컬 리포지토리에는 마스터 분기와 세 개의 다른 분기가 있습니다. 별표는 현재 분기를 나타냅니다. 브랜치에서 브랜치로 이동하려면 작업하려는 브랜치를 확인해야 합니다.
git checkout 새로운 기능
자식 상태
첫 번째 명령은 "new-feature"가 현재 분기가 되도록 분기를 변경합니다. git status
명령은 이를 확인합니다.
브랜치 사이를 오가며 새로운 변경 사항을 커밋하고 원격에서 업데이트를 가져오고 로컬 업데이트를 원격으로 푸시할 수 있습니다.
관련: 별도의 Git 분기를 업데이트하고 유지하는 방법
원격 브랜치 체크아웃
원격 저장소에는 우리 머신에 없는 분기가 있습니다. Mary라는 개발자가 새 기능을 만들었습니다. 해당 버전의 소프트웨어를 로컬에서 빌드할 수 있도록 해당 원격 브랜치로 전환하려고 합니다.
fetch
를 수행하면 Git은 원격 저장소에서 메타데이터를 가져옵니다.
자식 가져오기
이것은 Mary가 자신의 분기를 원격 저장소로 푸시한 이후로 수행한 첫 번째 fetch
이기 때문에 "origin/mary-feature"라는 새 분기가 있다고 들었습니다. 프로젝트에 추가된 첫 번째 원격 저장소의 기본 이름은 "origin"입니다.
이 메시지를 보든 안 보든 Git에게 원격 저장소의 브랜치를 나열하도록 요청할 수 있습니다.
-r
(원격) 옵션은 원격 저장소에 있는 분기에 대해 보고하도록 Git에 지시합니다.
자식 분기 -r
여기서 주목해야 할 점은 Git이 원격 메타데이터의 로컬 복사본을 확인하고 있다는 것입니다. 그렇기 때문에 git fetch
명령을 사용하여 메타데이터의 로컬 복사본이 최신인지 확인했습니다.
원하는 지점을 찾으면 계속 진행하여 확인할 수 있습니다. git checkout
명령을 -b
(브랜치) 옵션과 함께 사용하고 그 뒤에 로컬 브랜치에 사용할 이름과 원격 브랜치 이름을 차례로 사용합니다.
git checkout -b 메리 기능 원본/메리 기능
원격 분기를 체크아웃하고 원격 분기의 변경 사항을 추적할 로컬 분기를 생성했음을 알 수 있습니다.
자식 분기
우리의 새로운 로컬 브랜치는 이제 현재 작업 중인 브랜치입니다.
이름 충돌 처리
원격 분기와 이름이 같은 로컬 분기가 있는 경우 원격 분기를 체크아웃하기 전에 로컬 분기의 이름을 바꾸거나 원격 분기를 체크아웃하고 다른 로컬 분기 이름을 지정할 수 있습니다.
원격 분기를 다른 이름의 로컬 분기로 체크아웃하려면 이전에 사용한 것과 동일한 명령을 사용하고 새 로컬 분기 이름을 선택할 수 있습니다.
git checkout -b 메리 테스트 원본/메리 기능
이렇게 하면 해당 분기에 대한 로컬 커밋을 추적하는 "mary-test"라는 로컬 분기가 생성됩니다. 푸시는 원격 "origin/mary-feature" 분기로 이동합니다.
이것은 로컬 이름 충돌을 처리하는 가장 좋은 방법일 것입니다. 로컬 및 원격 브랜치의 이름을 동일하게 유지하려면 원격 브랜치를 체크아웃하기 전에 로컬 브랜치의 이름을 변경해야 합니다. 브랜치의 이름을 바꾸는 것은 Git에서 간단합니다.
git branch -m 메리 기능 올드 메리 브랜치
이제 원격 "origin/mary-feature" 브랜치를 체크아웃할 수 있습니다.
여러 원격 저장소 처리
여러 원격 리포지토리를 구성한 경우 원격 브랜치를 체크아웃할 때 적절한 리포지토리로 작업하고 있는지 주의해야 합니다.
원격 리포지토리를 나열하려면 -v
(보기) 옵션과 함께 remote
명령을 사용합니다.
자식 원격 -v
사용 가능한 모든 분기를 보려면 모든 원격에서 메타데이터를 가져온 다음 원격 분기를 나열해야 합니다.
자식 가져오기 --모두
자식 분기 --모두
우리가 원하는 분기가 "origin" 원격에 있는 것을 볼 수 있습니다. 이를 확인하는 명령은 이미 사용한 것과 동일한 형식입니다. 원격 이름 "origin"과 브랜치 이름 "mary-feature"를 지정해야 합니다.
git checkout -b 메리 기능 원본/메리 기능
관련: Git Remote를 전환, 추가 및 제거하는 방법
결제하기 전에
결제하기 전에 몇 가지 사항을 염두에 두시면 괜찮을 것입니다.
이름 충돌을 피하십시오. 원격 브랜치와 이름이 같은 로컬 브랜치가 있는 경우 로컬 브랜치의 이름을 바꿀지 또는 원격 브랜치를 추적하기 위해 다른 이름으로 브랜치를 생성할지 결정합니다.
여러 원격 저장소를 사용하는 경우 올바른 원격 저장소를 사용하고 있는지 확인하십시오.
관련: Git rebase: 알아야 할 모든 것