Git 클론 브랜치: 단계별 튜토리얼

책을 쓰고 싶어서 새로운 아이디어들을 실험해보고 싶지만 원본을 망가뜨리고 싶지 않을 때는 어떻게 될까? 각각의 아이디어에 대해 새로운 노트북을 하나씩 시작해 초안을 분리해서 관리할 수 있습니다.

버전 관리 시스템인 Git은 “브랜치”를 통해 소프트웨어 개발자가 코드에서도 동일한 일을 할 수 있도록 합니다. 각 브랜치는 발전의 별도의 경로로서, 주요 코드베이스에 영향을 주지 않고 변경 사항을 탐구할 수 있습니다.

이篇文章에서는 git clone 명령어를 사용하는 방법을 안내하며, 특정 브랜치를 클론하는 것에 초점을 맞출 것입니다. Git에 대해 더 배우고 싶다면, 이 Git 입문 교육과정을 추천합니다.

급한 분들을 위해 먼저 짧은 답변을 제시하고, 그 이후에 자세한 내용을 살펴봅시다.

짧은 답변: 특정 브랜치를 클론하는 방법

git 저장소에서 특정 브랜치를 클론하려면 다음 명령을 사용합니다:

git clone --single-branch --branch <branch_name> <repository_url>

<branch_name> 에 원하는 브랜치 이름을, <repository_url> 에 저장소의 URL을 넣으시면 브랜치의 로컬 사본을 만들 수 있습니다. 이렇게 하면 지정한 브랜치에 직접적으로 개발할 수 있습니다.

예시

이 문서 전에서 저장소를 사용하여 배우는 명령어를 자신의 컴퓨터에서 실험할 수 있습니다. 이 저장소에는 세 가지 브랜치가 있습니다.

  1. main: 두 가지 텍스트 파일이 포함된 기본 분기.
  2. add-new-file: 세 번째 파일이 추가된 분기.
  3. modify-file: 두 번째 파일이 수정된 분기.

이러한 방법으로 분기 add-new-file을(를) 克隆할 수 있습니다.

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

What Is git clone?

기본적으로, git clone는 모든 브랜치를 클론하여 로컬 컴퓨터의 새 디렉터리로 整个 repository를 © copying하도록 설계되어 있습니다. 다음과 같은 문법이 있습니다.

git clone <repository_url>

예시 repository를 클론하려면, 다음과 같이 할 수 있습니다:

git clone https://github.com/fran-aubry/git-clone-example.git

이 명령어 실행 후, 모든 분기는 로컬 기기로 복사되ます. 그러나 한 번에 보이는 것은 하나의 분기의 파일뿐, 이를 checked-out 분기라고 부릅니다. 저장소를 克隆하면 기본 분기(일반적으로 main 또는 master라고 불립니다)이 克隆되어 있는 것이 检出(checked out)됩니다.

분기 변경

전체 클론 후, git checkout 명령어를 사용하여 원하는 브랜치로 변경(체크아웃)할 수 있습니다. 예를 들어, modify-file 브랜치로 체크아웃하려면 다음과 같이 합니다:

git checkout modify-file

클론 깊이

Git과 작업하는 동안 git commit 명령을 사용하여 브랜치의 변경사항을 커밋하여 저장합니다. 각 커밋은 그 브랜치의 새로운 상태를 생성합니다. 필요에 따라 이전 상태로 돌아가실 수 있습니다. 각 커밋을 촬영 상자라고 생각하시면 됩니다. Git은 모든 这些 촬영 상자를 관리합니다. 任何时候 브랜치를 이러한 촬영 상자의 任一处로 돌아가는 수 있습니다.

`git clone` 명령어는 옵션을 사용하지 않는 경우, 모든 분기의 모든 커밋을 로컬 computer에 다운로드합니다. 프로젝트 크기에 따라 이 것은 로컬 저장소에 중요한 공간을 차지할 수 있습니다. 모든 이력을 필요로 하지 않을 경우, --depth 매개 변수를 사용하여 克隆할 commit(이或者 샷)의 수를 지정할 수 있습니다.

주요 분기를 克隆하면서 가장 최근 commit only를 로드하려면 以下の 명령어를 사용하세요:

git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git

특정 분기를 克隆하는 것

git clone 명령어를 사용하여 저장소를 克隆하는 방법을 배웠습니다. 기본적으로, 이 명령어는 모든 것을 로컬 머신으로 克隆합니다. 자주 특정 브랜치에 대해 작업하는 것이 관심이 있을 수 있으므로, 그 BRANCH에 대해 alone로 克隆하는 것이 더 효율적일 수 있습니다. 이러한 방법은 디스크 공간을 节省하고, 克隆 후에 브랜치를 변경하지 않고 即시 작업을 시작할 수 있습니다.

livre 쓰는 의미로, Second 섹션의 리rite를 执行为目的의 Branch에 대한 克隆만 行う 것이 좋습니다. 다른 섹션의 리VISION과 관련된 브랜치에 대한 접근이 필요없기 때문입니다.

git을 사용하여 단일 بランchn을 克隆할 수 있습니다. --single-branch--branch 인자를 추가하여 이름을 지정합니다:

git clone --single-branch --branch <branch_name> <repository_url>

명령어를 분해해봅시다:

  • git clone: 이것은 git 기본 명령어로 원격 소스에서 로컬 기기로 저장소를 복사합니다.
  • --single-branch: 이 옵션은 Git에게 단일 بランchn만 克隆할 것을 지시합니다. 브랜chn이 지정되지 않으면, 기본 브랜chn이 克隆됩니다.
  • --branch : 이 옵션은 克隆하려는 분기를 지정합니다. >는 克隆하고자 하는 분기의 이름입니다.
  • : 이 것은 저장소의 URL입니다.

예를 들어, 저장소의 modify-file 분기만 克隆하고자 하면, 다음과 같은 명령을 실행할 수 있습니다:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

克隆한 분기에서 작업하는 方法

분기에 작업할 때,이러한 세 가지 기본적인 opera tion s를 해야 합니다.

  1. 현재 작업의 저장을 위해 현재 상태를 스냅샷으로 생성하는 것
  2. 변경사항을 업로드하여 모두에게 ACCESS가 가능하도록 합니다.
  3. 다른 사람들의 변경사항을 다운로드하고 그들과 merge를 합니다.

git commit를 사용하여 변경사항을 저장합니다.

Git에서 작업을 저장하는 것은 커밋(commit)이라고 합니다. 커밋과정은 你现在工作的分支의 현재 상태를 스냅샷(snapshot)으로 기록합니다.

BRANCH의 상태는 每个 커밋 후 로컬 컴퓨터에 저장되어 있으며, 進捗 여러 段階을 이동하는 것에 사용할 수 있습니다.

Git에 변경사항을 적용하려면 git commit 명령어를 사용합니다. 然而, 変更사항을 커밋하기 전에 Git이 어떤 파일을 커밋에 포함하고 싶은지 알 필요が 있습니다. 커밋에 포함할 파일을 지정하는 것은 git add 명령어를 사용합니다. 이 명령어의 문법은 다음과 같습니다:

git add <path_to_file>

문법에서 <path_to_file> 는 커밋하고자 하는 파일의 경로입니다. 例如, 우리가 예시 저장소에서 modify-file 브랜치에 있고 file2.txt 에 한 段落在를 추가했다면, 해당 파일을 추가하기 위해서는 다음과 같이 실행합니다:

git add file2.txt

모든 커밋에 포함하고자 하는 파일을 추가하면 다음과 같은 명령어로 커밋할 수 있습니다:

git commit -m <message>

이곳에서 <message> 인자는 괄호 안에 ഉഠ的字符 dual quotes 로 감싸진 간단한 메시지로, 변경사항을 간단히 기술해야 합니다. 예를 들어:

git commit -m "Add paragraph"

커밋 메시지에 대한 一些惯例이 있습니다. 이것은 项目에 작업하는 모든 사람들之间의 명확性和 이해를 보장하는 데에 중요합니다:

  • 命令式 사용: 커밋 메시지의 시작에 명령형 動词(예를 들어 “Add,” “Fix,” “Update”)를 사용하세요. 例如, “Added new feature” 대신 “Add new feature”를 쓰십시오.
  • 간단하지만 descriptive : 50 자 이하의 간단한 메시지로 노력하자. 그러나 변경사항을 명확하게 기술하는 것을 우선하자. “Changed stuff”는 “Update styling for navigation bar”로 書いて라.
  • 일반적인 메시지를 避け자 : “Fix bugs”나 “Make improvements”과 같은 vaguer messages를 避け자. 대신 “Fix bug in login form validation”나 “Improve readability of documentation”와 같이 SPECIFIC하게 기술하자.

Your changes with git push로 업로드하자.

커밋할 때 로컬 머신에서 변경 사항의 스냅샷을 생성합니다. 다른 사람들이 당신의 변경 사항에 접근하려면 업로드해야 합니다. 이를 위해 push 명령어를 사용합니다.

Git에서 push 명령어의 기본 구문은 다음과 같습니다:

git push <remote> <branch>

이를 분해해 봅시다:

  • <remote>은 您的变更를 推送到的 远程仓库의 이름입니다. 리포지토리를 克隆할 때, 기본적으로 remot repository가 origin로 지정됩니다.
  • <branch>은 变更를 远程仓库로 推送하고자 하는 분기의 이름입니다. 이 인자를 省略하면, Git 는 현재 분기 기반으로 变更를 推送하고, 远程 추적 구성을 참고합니다.

以下是一些 git push 的常见用途:

  • 현재 분기의 变更 推送: git push
  • 특정 분기의 변경 사항을 보내는 것: git push origin <branch>

Git은 대형 그룹에서 같은 프로젝트에 parallely 작업할 수 있게 해줍니다. 동시에 같은 분기를 수정하는 동료가 있다면, Local Branch는 远程 분기와 비교해서 behind 될 수 있습니다.

다른 사람들의 커밋을 다운로드하기 위해, 우리는 git pull 명령어를 사용합니다. Git의 push 명령어의 기본 구문은 다음과 같습니다:

git pull <remote> <branch>

각 매개변수가 무엇을 하는지 다음과 같습니다:

  • 이 远程저장소의 이름이며, 이 저장소를 가져오고자 하는 것이다. 기본적으로, 이 저장소는 origin라고 이름이 지정되어 있다.
  • git pull: 이 명령은 어느 분기로부터 변화를 갱신할지 명시적으로 지정하지 않았다면, git은 현재 분기와 그 상위 분기를 사용한다.

git pull

  • 현재 분기에서 변화를 갱신하는 것: git pull
  • 특정 분기의 변화를 갱신하는 것: git pull origin

Commit-pull-push workflow.

Git을 사용할 때, 로컬 브랜치를 최신状態로 유지하기 위해 자주 업데이트를 꺼내는 것을 推奨합니다. 下面的 最佳实践中에 따라하시기 바랍니다.

  • 작업을 시작하기 전에, 현재 브랜치의 最新の업데이트를 꺼내고 있으며 가장 최근 버전에서 작업하고 있는지 확인하십시오.
  • 자주 コミット하십시오. 각 コミット은 small, logically related changes에 集中する 것을 확인하십시오.
  • 일부 변경을 하고 コミット을 생성하고 나면, 다른 사람이 동시에 업데이트를 하였을 수 있으므로 브랜치를 꺼내고 있습니다.
  • 결국, 리모ote 리포지토리로 변경을 옮기십시오.

Git 충돌

리모트 저장소로부터 변경 사항을 다운로드하는 git pull 명령을 실행할 때, 다른 커밋이 로컬 커밋과 같은 라인을 수정한 경우를 마주할 수 있습니다. Git은 변경 사항을 자동으로 병합하려고 시도하며, 많은 경우에 성공합니다. 예를 들어, 같은 파일의 다른 부분을 수정한 경우, Git은 커밋이 서로 다른 부분을 영향받았기 때문에 부드럽게 병합할 수 있습니다.

그러나 다른 기여자와 같은 문단을 편집한 경우, git은 어떤 버전을 유지할지 판단할 수 없게 되어 병합 충돌이 발생합니다. 이러한 상황에서는 어떤 변경 사항을 유지할지 결정하여 충돌을 수동으로 해결해야 합니다.

merge 충돌을 해결하는 방법에 대한 자세한 지침을 얻으시려면, GitHub에서 Git에서 합병 충돌을 해결하는 방법을 읽으시는 것을 建议드립니다.

GitHub 다운로드

특정 시나리오에서는 수정할 의도 없이 리포지토리의 로컬 복사본이 필요할 수 있습니다. 만약 그것이 공개 리포지토리라면 로컬 머신에 Git을 설치할 필요가 없습니다. GitHub에서 직접 리포지토리를 다운로드할 수 있으며, Code 버튼을 클릭한 후 Download Zip 버튼을 클릭하면 됩니다. 아래와 같이:

결론

Git 클로닝을 통해 Git 리포지토리를 로컬 머신에 복사하여 코드를 활용하거나 새로운 기능을 추가하여 확장할 수 있습니다. 리포지토리를 클로닝할 때 모든 브랜치가 다운로드되므로 상당한 디스크 공간을 차지할 수 있습니다.

구성 요소들은 특정 변경 사항 또는 기능에 대한 작업을 行う 때 사용되ます. 특정 구성 요소를 克隆(clone)하면 관련이 없는 작업을 다운로드하지 않고 이를 기여하기 위해서, 磁盘 공간이 많이 절약되며 로컬 磁盘의 清洁度가 더 좋습니다.

이 주제에 대해 더 많은 정보를 습득하고자 하시면, 이 GitHub과 Git 초기 튜토리얼을 추천드립니다.

Source:
https://www.datacamp.com/tutorial/git-clone-branch-tutorial