github 6

Git 교과서 06 (서브모듈)

깃 호스팅 서비스들은 제공되는 저장소 용량을 제한한다. 보통 1GB 용량을 제공하기 때문에 파일 개수가 많은 프로젝트에서는 좀 더 효율적인 관리 방법이 필요하다. 규모가 큰 프로젝트는 필요에 맞게 작은 저장소로 분할하여 운영하는 것이 효율적이다. 이러한 저장소의 분할 개념을 서브모듈이라고 한다. 서브모듈은 저장소 하나가 다른 깃 저장소를 포함하는 형태를 의미한다. 요즘 규모가 큰 프로젝트는 모듈화하여 개발하는 추세다. 각 기능을 모듈화하여 독립 깃 저장소로 관리한다. 독립된 저장소는 모듈로서 다시 메인 저장소와 결합하여 재사용된다. 메인 저장소에는 서브 저장소가 여러 개 있다. 따라서 저장소 간 상하 관계가 발생한다. 보통 부모 저장소와 자식 저장소 형태로 나눈다. 원격 저장소로 동기화된 자식들은 언제든..

Git Github 2021.12.16

Git 교과서 05 (배포와 태그)

배포 프로그램을 개발한 후에 결과물을 최종사용자에게 전달하는 과정을 배포라고 한다.완성된 형태로 배포하기 위해선 코드를 정리하는 추가 작업이 필요하다. 테스트 메시지나 불필요한 주석들을 정리한다. 버전 배포 이후에 코드를 수정해야 하는 경우가 많다. 즉, 코드는 개발을 완료한 후에도 계속 수정된다. 코드를 수정했다면 개발자 또는 최종 사용자가 이를 확인하고 구별할 수 있어야 한다. 이러한 차이를 구별할 수 있게 하는 것이 버전(version)이다. 보통 숫자를 사용하여 식별한다. 숫자가 클수록 최근에 수정된 코드이다. 버전업(version up)은 오래된 버전의 프로그램을 최신 버전의 코드로 변경하는 것을 의미한다. 업계규칙 기본적인 번호는 단일 번호 하나로 구성되어 있다. 단일 번호는 큰 기능을 변경했..

Git Github 2021.12.16

Git 교과서 03 (병합과 충돌)

병합과 충돌 브랜치를 생성하는 목적은 원본 코드에 영향을 주지 않고 개발하기 위해서이다. 개발이 끝나면 다시 원본 브랜치에 작업한 결과를 반영해야 한다. 분리된 브랜치를 한 브랜치로 합치는 작업을 병합(합치기)이라고 한다. 깃의 자동병합은 원본을 기준으로 두 파일의 변경 이력을 비교한다. 변경된 파일 내용이 발견되면 자동으로 수정된 코드 내용을 병합한다. 깃은 병합을 위해 두 가지 알고리즘을 제공한다. 충돌 없이 병합하기 위해 두 가지의 차이를 알아야 한다. Fast-Forward 병합 3-way 병합 Fast-Forward 병합 직역하면 빨리 감기라는 뜻이다. 주로 혼자 개발할 때 사용한다. 모든 변경 사항은 순차적으로 진행된다. 브랜치를 생성할 때 분기 기준은 master의 최종 커밋 포인터다. 깃의..

Git Github 2021.12.15

Git 교과서 02 (임시처리)

스태시 작업 브랜치를 변경하려면 워킹 디렉터리는 깨끗한 상태로 정리되어 있어야 한다. 하지만 긴급하게 브랜치를 변경해야 하는 경우 스태시(stash)기능을 사용하여 현재 수정 작업을 멈추고, 다른 브랜치에 있는 코드를 수정할 수 있다. 스태시는 '현재 워킹 디렉터리 내역을 별도의 스택 영역에 잠시 보관하라'는 명령이다. 브랜치를 이동할 때 워킹 디렉터리가 충돌하는 것을 방지한다. $ git stash git stash save는 스태시 여러 개를 생성할 때 유용하다 $ git stash save 스태시 작업을 할 때 --keep-index 옵션을 사용하여 스테이지 영역의 파일들을 제외할 수도 있다. 등록되지 않은 untracked 상태의 파일을 스태시로 생성하고 싶다면 --include-untracked..

Git Github 2021.12.15

Git 버전관리

git init . : 현재 디렉토리를 깃에게 버전관리를 시키도록 명령 (init : initialize, 초기화) hello-git-cli 폴더안에 있는 .git(repository)폴더에서 버전관리를 한다. Working tree는 작업(파일 생성, 수정)을 하는 공간이고, 버전으로 만들어지기 전 단계다. \ 버전을 만들기 위해서는 파일을 Working tree에서 Staging Area로 옮겨야 한다. \ Staging Area에서 Repository로 옮기면 버전이 저장된다. git staus : 폴더의 현재 상태를 확인할 수 있다. No commits yet... : 아직 커밋이 안됐다는 것을 알 수 있다. Untracked files.... : Working tree에 들어있는 파일들의 목록을..

Git Github 2021.03.05