찾다
기술 주변기기IT산업점프 스타트 git : git에서 분기

<:> git branch : 효율적인 협업을위한 도구 이 기사는 "Jump Start Git"이라는 책에서 발췌 한 것으로, Sitepoint Premium 회원에게 무료로 제공됩니다. 실제 책은 전 세계 주요 서점에서 구입할 수 있으며 여기에서 주문할 수도 있습니다. 당신이 그것을 좋아하고 혜택을 받기를 바랍니다! 1 장에서, 나는 프로젝트에서 새로운 것을 시도하는 것에 대한 나의 초기 두려움에 대해 이야기했다. 야심 찬 기능을 시도하지만 이전에 기능했던 부분을 깨뜨리면 어떻게해야합니까? Git의 분기 기능은이 문제를 완벽하게 해결합니다.

키 포인트 요약

git Branch를 사용하면 원래 프로젝트에 영향을 미치지 않고 프로젝트 사본을 실험 할 수 있습니다. 실험이 성공하면 실험 요소를 메인 브랜치로 병합하기 쉽습니다.

분기는 서로를 방해하지 않고 여러 작업을 동시에 처리 할 수 ​​있도록합니다. 이 기능은 다른 기능을 처리하는 동안 하나의 기능의 승인을 기다릴 때 매우 유용합니다. 분기는 다른 아이디어를 분리하여 코드를 쉽게 이해할 수있게 해줍니다. 명령을 사용하여 git에서 분기를 만듭니다. 이 분기로 전환하여 를 사용하십시오. 분기 삭제는 를 사용하지만 필요하지 않은 한 분기를 삭제하지 않는 것이 좋습니다.

git의 지점 합병은 간단한 과정입니다. 필요한 분기가 활성화되어 있는지 확인한 후 명령 를 사용하십시오. 그러나 이것은 프로젝트 기록에서 루프를 만들 수 있으며, 이는 대규모 팀에서 탐색하기가 어려울 수 있습니다. 다음 장에서는 루프를 생성하지 않는 병합 방법을 탐색합니다.
  • 지점이란 무엇입니까?
  • 프로젝트에서 새 지점을 만드는 것은 본질적으로 프로젝트 사본을 만드는 것을 의미합니다. 이 사본을 사용하여 원래 프로젝트에 영향을 미치지 않고 실험 할 수 있습니다. 따라서 실험이 실패하면 포기하고 원래 프로젝트 인 메인 브랜치로 돌아갈 수 있습니다.
  • 그러나 실험이 성공적이면 GIT는 실험 요소를 메인 브랜치로 쉽게 병합 할 수 있습니다. 그리고 나중에 마음이 바뀌면 합병 전에 프로젝트 상태로 쉽게 복원 할 수 있습니다.
  • 따라서 따라서 git의 지점은 독립적 인 개발 경로입니다. 다른 지점에 영향을 미치지 않고 지점에서 새 커밋을 만들 수 있습니다. 분기 사용의 용이성은 GIT의 가장 좋은 기능 중 하나입니다. (다른 버전 제어 옵션 (예 : CVS)에는 지점 옵션이 있지만 CVS에서 분기를 병합하는 경험은 매우 지루합니다. 다른 버전 제어 시스템에서 지점을 사용한 경험이 있다면 GIT에서 지점을 사용하는 것이 완전히 다르다는 것을 안심하십시오. )) git에서는 기본적으로 메인 브랜치에 있습니다. "마스터"라는 이름이 어떤 식 으로든 우수하다는 것을 의미하지는 않습니다. 이것은 단지 전통적인 말입니다. git branch [分支名称] 참고 : 지점 계약 git checkout [分支名称] 당신은 Git의 기본 지점으로 다른 지점을 자유롭게 사용할 수 있지만 사람들은 일반적으로 주 지점에서 특정 프로젝트에 대한 최신 코드를 찾을 것으로 기대합니다. git branch -D [分支名称] 당신은 어떤 커밋으로 돌아갈 수있는 능력 때문에 지점이 필요하지 않다고 주장 할 수 있습니다. 그러나 작업의 일부가 아닌 새로운 기능을 개발하면서 상사에게 작업을 보여 주어야한다고 상상해보십시오. 지점은 다른 아이디어를 분리하는 데 사용되므로 저장소의 코드를 이해하기 쉽게 만듭니다. 또한 지점을 사용하면 마스터 또는 마스터 브랜치에서만 중요한 커밋을 유지할 수 있습니다.

    분기의 또 다른 사용은 서로를 방해하지 않고 동시에 여러 가지를 처리 ​​할 수 ​​있다는 것입니다. 검토를 위해 기능 1을 제출했다고 가정하지만 감독자가 검토하는 데 시간이 걸립니다. 동시에 함수 2를 처리해야합니다. 이 경우 지점은 편리합니다. 새 지점에서 새로운 아이디어를 작성하는 경우 언제든지 이전 지점으로 다시 전환하여 리포지토리를 이전 상태로 복원 할 수 있으며, 이는 아이디어와 관련된 코드가 포함되어 있지 않습니다.

    이제 git에서 지점을 사용해 보겠습니다. 사용중인 분기 목록과 현재 지점을 보려면 다음 명령을 실행하십시오.

    저장소를 클로닝하거나 원격 저장소를 설정 한 경우 원격 브랜치를 볼 수도 있습니다. 위의 명령 후에 -a : 를 추가하십시오

    <code>git branch</code>
    위에서 볼 수 있듯이, 빨간색 분기는 원격 저장소에 위치 함을 나타냅니다. 이 예에서는 원점 원격 저장소에 존재하는 다양한 분기를 볼 수 있습니다.

    분기 생성
    <code>git branch -a</code>

    git에 가지를 만드는 방법에는 여러 가지가 있습니다. 새 지점을 만들고 현재 지점에 보관하려면 다음 명령을 실행하십시오. Jump Start Git: Branching in Git

    여기,

    는 생성 된 지점의 이름입니다. 그러나 를 실행 한 후에는 활성 분기가 여전히 메인 브랜치 인 것 같습니다. 활성 분기를 변경하려면 아래와 같이 체크 아웃 명령을 실행할 수 있습니다 (아래 그림과 같이) :

    위의 두 명령을 결합하여 결제 명령 후 -B를 추가하여 하나의 명령에서 새 지점을 작성하고 확인할 수 있습니다.

    우리가 방금 만든 지점은 현재 활성화 된 지점의 최신 커밋 (이 경우 1 차 지점)을 기반으로합니다. 커밋 (예 : )을 기준으로 분기 (예 : )를 만들려면 다음 명령을 실행할 수 있습니다.
    <code>git branch test_branch</code>

    test_branch 현재 지점의 이름을 로 바꾸려면 다음 명령을 실행하십시오. <code>git branch</code> 삭제 분기

    분기를 삭제하려면 다음 명령을 실행하십시오
    <code>git branch</code>

    Jump Start Git: Branching in Git

    참고 : 필요하지 않은 한 분기를 삭제하지 마십시오 실제로 분기를 유지하는 데 단점이 없으므로 저장소의 분기 수를 관리하기에는 너무 커지지 않는 한 삭제하지 않는 것이 좋습니다.

    위에 사용 된 는 여전히 경고없이 지점을 삭제합니다. 데이터를 잃지 않도록하려면

    의 대안으로

    를 사용할 수 있습니다. 분기는 원격 분기와 동기화 된 경우에만 분기를 삭제합니다. 우리의 지점은 아직 동기화되지 않기 때문에 아래와 같이

    를 사용하면 어떻게되는지 보자.

    -D 보시다시피, Git은 데이터가 지점과 병합되지 않았기 때문에 귀하에게 경고하고 작업을 중단합니다. -D -d 분기와 머리 -D 이제 우리는 분기의 기본 사항을 시험해 볼 수있는 기회를 얻었으므로 분기가 어떻게 작동하는지에 대해 논의하고 중요한 개념 인 Head를 소개합니다. -d 위에서 언급 한 바와 같이, 분기는 다른 커밋 또는 커밋의 경로를 통한 링크 일뿐입니다. 지점을 사용할 때 지점의 헤드는 지점의 최신 커밋을 가리 킵니다. 다음 장에서는 여러 번 헤드를 언급 할 것입니다. Git에서는 헤드가 지점의 최신 커밋을 가리 킵니다. 다시 말해, 그것은 분기의 상단을 나타냅니다. -d 지점은 본질적으로 부모 커밋, 조부모 커밋 등이있는 커밋에 대한 포인터입니다. 이 커밋 체인은 위에서 언급 한 경로를 형성합니다. 그렇다면 지점과 머리를 연결하는 방법은 무엇입니까? 글쎄, 머리의 상단과 현재 지점은 같은 커밋을 가리 킵니다. 이 아이디어를 설명하기 위해 차트를 살펴 보겠습니다.

    위에서 볼 수 있듯이 Jump Start Git: Branching in Git 는 처음에는 활성 분기이며 Commit C의 헤드 포인트입니다. Commit a는 부모의 커밋없이 기본 커밋이므로

    의 커밋은 시간에 반대 순서로 정렬됩니다 (위에서 언급 한 경로를 구성하는 경우)는 C → B → A입니다.

    의 커밋은 E → D → B → A입니다. 헤드가 활성 분기의 최신 커밋을 가리키며, 즉 Commit C. 커밋을 추가하면 활성 분기에 추가됩니다. 커밋 한 후 는 f를 가리키고 분기는 f → c → b → a를 따르는 반면

    는 동일하게 유지됩니다. 헤드는 이제 F. 다시 한 번, 또 다른 커밋을 추가하면 변화가 그림에서 시연됩니다.

    고급 분기 : 병합 분기 앞에서 언급했듯이 Git의 가장 큰 장점 중 하나는 지점을 병합하는 것이 특히 쉽다는 것입니다. 이제 어떻게 끝났는지 봅시다.

    우리는 두 개의 새로운 브랜치 - 와

    -를 만들고 가상 커밋을 추가 할 것입니다. 각 지점의 역사를 확인하면

    브랜치가 다음과 같이 커밋을 이끌고 있음을 보여줍니다. new_feature another_feature 이 상황은 아래 그림에 표시 될 수 있습니다. 각 원은 커밋을 나타내고 지점 이름은 머리 (분기 상단)를 가리 킵니다. another_feature

    주 분기와 병합하려면 다음 명령을 실행하십시오 (먼저 메인 브랜치가 활성화되어 있는지 확인하십시오) : Jump Start Git: Branching in Git

    결과는 아래 그림에 표시 될 수 있습니다.

    와 병합하려면 다음 명령을 실행합니다 ( 브랜치가 활성화되어 있는지 확인하십시오) : Jump Start Git: Branching in Git 결과는 아래 그림에 표시 될 수 있습니다.

    new_feature 중요한 팁 : 사이클

    에주의를 기울이십시오 위의 이미지는이 병합이 프로젝트 기록에서 워크 플로가 각각 분기되고 수렴되는 두 커밋에 걸쳐 루프를 생성한다는 것을 보여줍니다. 이러한 루프는 혼자 일할 때 또는 소규모 팀에서 일할 때 문제가되지 않을 수 있습니다. 그러나 더 큰 팀에서는 메인 브랜치에서 벗어난 이후로 많은 커밋이있을 수 있습니다.이 큰 루프는 기록을 탐색하고 변화를 이해하기가 어렵습니다. 6 장에서 루프를 만들지 않고 Rebase 명령을 사용하여 분기를 병합하는 방법을 모색 할 것입니다.
    <code>git branch</code>

    이 합병에는"충돌 "이 없습니다. 그 이유는 간단합니다.

    지점에 비해 새로운 커밋이 Jump Start Git: Branching in Git 지점에 추가되지 않습니다. GIT의 충돌은 동일한 파일의 동일한 부분이 두 지점에서 비공개 커밋에서 수정 될 때 발생합니다. Git은 데이터를 잃지 않도록 충돌을 일으 킵니다.

    우리는 다음 장에서 갈등에 대해 자세히 논의 할 것입니다. 앞에서 언급했듯이 분기는 간단한 커밋 경로로 시각화 될 수 있습니다. 우리가 지점을 병합하고 위와 같이 갈등이 없을 때, 분기 경로 만 변경되고 지점의 머리 만 업데이트됩니다. 이것을 빠른 전달 유형 병합이라고합니다.

    분기를 병합하는 또 다른 방법은 Merge 명령 후 another_feature를 추가하여 빠른 전방 병합입니다. 이런 식으로, 다른 지점의 변경 사항이있는 기본 지점에 새로운 커밋이 생성됩니다. 또한 제출 메시지를 지정해야합니다

    <code>git branch</code>
    위의 예에서, 전자 (메인 브랜치와의 merge

    )는 빠른 전진 병합이며, 후자는 합병 커밋과 비교되지 않은 전진 합병입니다. new_feature

    결론

    무엇을 배웠습니까? 이 장에서는 분기가 무엇인지, GIT에서이를 관리하는 방법에 대해 설명합니다. 우리는 가지를 만들고 수정, 삭제 및 병합하는 것을 보았습니다.

    다음은 무엇입니까?

    나는 이미 팀과 함께 일하는 개발자들에게 git이 어떻게 좋은지에 대해 이야기했습니다. 이것은 다음 장에서 더 자세히 살펴보고 분산 팀에서 자주 사용되는 특정 GIT 운영 및 명령에 대해 자세히 살펴 봅니다. git 브랜치에 대한 faqs

    git 지점의 주요 목적은 무엇입니까?

    Git Branch는 개발자가 별도의 개발 라인을 만들 수있는 강력한 기능입니다. 이것은 기본 프로젝트에서 작업을 격리 할 수 ​​있으므로 새로운 기능이나 수정 사항을 처리 할 때 특히 유용합니다. 기능 또는 수정이 완료되고 테스트되면 기본 프로젝트로 다시 병합 될 수 있습니다. 이를 통해 주요 프로젝트가 안정적으로 유지되도록하고 여러 개발자가 서로 방해하지 않고 다른 기능을 동시에 처리 할 수 ​​있습니다.

    git에서 새 지점을 만드는 방법?

    git에서 새 지점을 만드는 것은 간단합니다. 새 지점의 이름과 명령을 사용할 수 있습니다. 예를 들어, 는 "new_feature"라는 새 지점을 만듭니다. 이 분기로 전환하려면 다음과 같이 명령을 사용할 수 있습니다.

    • git에서 가지를 병합하는 방법은 무엇입니까? 명령을 사용하여 git에 분기를 병합합니다. 병합하기 전에 합병하려는 지점에 있어야합니다. 예를 들어, "new_feature"라는 지점을 "마스터"브랜치로 병합하려면 먼저 를 사용하여 기본 분기로 전환 한 다음 명령을 사용해야합니다.

    git 브랜치 포인터 란 무엇이며 어떻게 작동합니까?

      git Branch Pointer는 Commit SHA1 HASH가 포함 된 파일입니다. 새 지점을 만들 때 Git은 새 포인터를 만들어 각 새로운 커밋과 함께 움직입니다. 이를 통해 GIT는 프로젝트의 역사를 추적 할 수 있습니다.
      • git에서 분기를 삭제하는 방법은 무엇입니까? 명령을 사용하여 git에서 분기를 삭제 한 다음 지점 이름을 삭제하십시오. 예를 들어,
      • 는 "Old_Feature"라는 분기를 삭제합니다. 그러나 지점에 다른 지점에 합병되지 않은 커밋이있는 경우 Git은 지점을 삭제하지 못하게합니다. 삭제를 강제로

        git의 빠른 전진 합병과 3 중 합병의 차이점은 무엇입니까? git branch -d git branch -d old_feature 전류 분기의 끝에서 대상 분기까지 선형 경로가있을 때 git에서 빠른 전달 병합이 가능합니다. Git은 새로운 커밋을 만드는 대신 현재 지점 포인터를 대상 지점으로 이동합니다. 반면에 선형 경로가 없을 때 3자인 병합이 사용됩니다. GIT는 두 가지 지점을 효과적으로 연결하여 두 부모와 함께 새로운 커밋을 만들 것입니다. -D

          git 저장소에서 모든 지점을 보는 방법은 무엇입니까?
        • 당신은 명령을 매개 변수없이 사용하여 git 저장소의 모든 분기를 볼 수 있습니다. 이것은 모든 지역 지점을 나열합니다. 원격 브랜치를 보려면 다음과 같이
        • 옵션을 사용할 수 있습니다 : .

        Git에서 지점의 이름을 바꾸는 방법은 무엇입니까?

          명령을 사용하여 git의 분기 이름을 바꾸고 구식 및 새 이름을 바꿉니다. 예를 들어,
        • 는 "Old_name"을 "new_name"으로 바꿉니다. git의 분리 헤드는 무엇이며 그것을 피하는 방법은 무엇입니까?
        git의 해당 머리는 지점 대신 커밋을 확인할 때 발생합니다. 다른 지점에 체크 아웃 할 때 변경 사항이 손실되기 때문에 위험 할 수 있습니다. 이를 피하려면 항상 커밋 대신 지점을 확인하십시오.

        <code>git branch</code> -a git에서 지점을 병합 할 때 충돌을 해결하는 방법은 무엇입니까? <code>git branch -a</code>

        git에서 분기를 병합 할 때 동일한 파일의 동일한 부분이 두 분기에서 수정되면 충돌이 발생할 수 있습니다. git은 파일을 "무너진"것으로 표시하면 충돌을 수동으로 해결해야합니다. 텍스트 편집기에서 파일을 열고 충돌 마크를 찾은 다음 보관할 변경 사항을 결정하여이를 수행 할 수 있습니다. 모든 충돌이 해결되면 를 사용하여 파일을 추가하고 를 사용하여 제출할 수 있습니다.

    • 위 내용은 점프 스타트 git : git에서 분기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

      성명
      본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
      2025 년에 가입 할 Top 21 개발자 뉴스 레터2025 년에 가입 할 Top 21 개발자 뉴스 레터Apr 24, 2025 am 08:28 AM

      이 최고의 개발자 뉴스 레터와 함께 최신 기술 트렌드에 대해 정보를 얻으십시오! 이 선별 된 목록은 AI 애호가부터 노련한 백엔드 및 프론트 엔드 개발자에 이르기까지 모든 사람에게 무언가를 제공합니다. 즐겨 찾기를 선택하고 Rel을 검색하는 데 시간을 절약하십시오

      AWS ECS 및 LAMBDA가있는 서버리스 이미지 처리 파이프 라인AWS ECS 및 LAMBDA가있는 서버리스 이미지 처리 파이프 라인Apr 18, 2025 am 08:28 AM

      이 튜토리얼은 AWS 서비스를 사용하여 서버리스 이미지 처리 파이프 라인을 구축함으로써 안내합니다. ECS Fargate 클러스터에 배포 된 Next.js Frontend를 만들어 API 게이트웨이, Lambda 기능, S3 버킷 및 DynamoDB와 상호 작용합니다. th

      CNCF ARM64 파일럿 : 충격 및 통찰력CNCF ARM64 파일럿 : 충격 및 통찰력Apr 15, 2025 am 08:27 AM

      CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal 및 Actuated 간의 공동 작업 인이 파일럿 프로그램은 CNCF Github 프로젝트를위한 ARM64 CI/CD를 간소화합니다. 이 이니셔티브는 보안 문제 및 성과를 다룹니다

      See all articles

      핫 AI 도구

      Undresser.AI Undress

      Undresser.AI Undress

      사실적인 누드 사진을 만들기 위한 AI 기반 앱

      AI Clothes Remover

      AI Clothes Remover

      사진에서 옷을 제거하는 온라인 AI 도구입니다.

      Undress AI Tool

      Undress AI Tool

      무료로 이미지를 벗다

      Clothoff.io

      Clothoff.io

      AI 옷 제거제

      Video Face Swap

      Video Face Swap

      완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

      뜨거운 도구

      SublimeText3 중국어 버전

      SublimeText3 중국어 버전

      중국어 버전, 사용하기 매우 쉽습니다.

      Eclipse용 SAP NetWeaver 서버 어댑터

      Eclipse용 SAP NetWeaver 서버 어댑터

      Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

      SublimeText3 영어 버전

      SublimeText3 영어 버전

      권장 사항: Win 버전, 코드 프롬프트 지원!

      mPDF

      mPDF

      mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

      SecList

      SecList

      SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.