Git 10

[Git 교과서] 11장 서브모듈

서브 모듈 저장소 하나가 다른 깃 저장소를 포함하는 형태를 의미한다. 규모가 큰 저장소를 여러 개로 분리하여 운영할 수 있도로 해준다. 공통되는 모듈을 분리하여 관리하여 생산성을 높이고 관리를 편하게 할 수 있다. 서브 모듈 추가 git submodule add 원격저장소URL 폴더이름 원격 저장소가 chlid 폴더로 복제된다. 서브 모듈의 설정 파일인. gitmodules에 추가됨 path : 폴더명 url : 자식 저장소의 원격 주소 url 부모 저장소 복제 부모 저장소를 clone을 할 경우 sub module 저장소까지 clone 되지 않는다. sub module 폴더로 이동후 서브 모듈 초기화 이후 업데이트를 진행해줘야 한다. git clone 부모 저장소 cd child git submodul..

Git 2023.07.12

[Git 교과서] 10장 배포 관리와 태그

버전 프로그램을 수정하거나 개선할 때마다 코드를 구분하려고 부여된 식별자 첫 번째 자리 메이저 버전으로 큰 기능을 변경했을 때 변경 첫 자리가 0으로 시작하면 아직 초기 개발 중인 제품이라는 의 메이저 번호 변경 시 하위 버전과 호환성 낮아질 수 있음 두 번째 자리 마이너 번호 메이저 버전에서 기능 추가/ 변경 사항이 있을 때 수정 세 번째 자리 패치 버전. 버그 수정 등 미미한 변화가 있을 때 사용 태그 특정 커밋의 해시 값을 가리키는 꼬리표 코드 배포 관리를 위해 주로 사용 꼬리표 이름과 정보를 포함함 Lightweight 태그 가장 기본적인 태그. 버전 이름만 있음 annotated 태그 주석이 달린 태그 -a 태그 버전 태그 이름은 중복해서 생성할 수 없다. -m 메세지를 작성할 수 있다. -d ..

Git 2023.07.07

[Git 교과서] 9장 복귀

코드를 되돌리는 방법 reset revert reset 커밋을 기준으로 이전 코드로 되돌리는 방법 기록한 커밋을 취소한다. reset 명령어 git reset [option] [커밋ID] soft 스테이지 영역을 포함한 상태로 복원한다. add 명령어로 스테이지 영역에 올려 커밋을 실행하기 직전의 단계로 되돌린다. mixed 스테이지 영역을 포함하지 않은 상태로 복원합니다. Default 옵션 값이다. add 명령어로 스테이지 영역에 다시 올려서 커밋을 진행해야한다. hard 실제 파일이 삭제된 이전 상태로 복원합니다. 복귀 시작의 커밋 상태와 해당 커밋의 워킹 디렉터리까지 모두 되돌린다. 스테이지 reset 스테이지 영역 파일을 다시 unstage 상태로 만들때 사용 git reset [파일이름] re..

Git 2023.06.29

[Git 교과서] 8장 병합과 충돌

병합 분리된 브랜치를 한 브랜치로 합치는 작업 자동 병합 원본 기준으로 두 파일의 변경 이력을 비교하여 변경된 파일 내용이 발견되면 자동으로 수정된 코드 내용을 병합 자동으로 반영하지 못하는 것들은 충돌이 발생 병합 방식 merge fast--forward 병합 브랜치 경로가 일직선일 경우의 브랜치에서 병합 작업을 할 때 자식 branch의 시작 커밋을 부모 branch 이후의 커밋으로 가리킨다. 3-way 병합 공통 조상을 가지는 두 자식branch를병합하는 방식 git은 공통 조상 커밋을 자동으로 찾아주며, 공통 조상을 기준으로 branch를 병합한다. 병합을 성공적으로 완료한 후 새로운 커밋(병합 커밋)을 새로 생성한다. rebase 시간 순의 순차적 나열이 아닌 기준 브랜치의 마지막 커밋으로 재정..

Git 2023.06.20

[Git 교과서] 7장 Stash

Stash 커밋되지 않은 변경 내용을 임시 저장할 수 있는 기능이다. Stash 명령어 * 코드 저장 git stash // 현재 작업들을 임시 스택 영역에 저장 git stash save // git stash와 동일하나, 하단과 같이 메세지를 함께 저장 가능 git stash save "WIP: 메시지~~~" // 각각의 스태시 구별할 수 있도록 메시지 추가 가능 git stash --keep-index // 스테이지 영역의 파일들을 제외하고 스태시 git stash --include-untracked // 등록되지 않은 untracked 상태의 파일을 스태시로 생성 ( 단축어: -u ) * 임시 저장 영역의 스택 목록 git stash list // 스태시 스택 조회 git stash show //..

Git 2023.06.15

[Git 교과서] 6장-2 Branch

Branch https://puk0806.tistory.com/66 [Git 교과서] 6장-1 Branch Branch 나뭇가지, 지사, 분점 등 줄기 하나에서 뻗어나온 갈림길을 의미한다. 저장공간 하나에서 가상의 또 다른 저장 공간을 만드는 것이다. Branch 특징 가상 폴더 작업 폴더를 실제로 복사하지 않 puk0806.tistory.com 원격 브랜치 리모트 브랜치 원격 저장소에 생성한 브랜치를 리모트 브랜치라고 하며, 로컬에 생성된 브랜치를 서버로 공유할 수 있다. 리모트 브랜치는 보통 `별칭/브랜치 이름` 과 같은 형태로 사용한다. 저장소를 복제(git clone) 하면 트래킹 브랜치가 하나만 표시된다. 복제할 당시 모든 브랜치를 복제하지 않았기 때문이다. 불필요한 브랜치를 한번에 다 가져오는..

Git 2023.06.03

[Git 교과서] 6장-1 Branch

Branch 나뭇가지, 지사, 분점 등 줄기 하나에서 뻗어나온 갈림길을 의미한다. 저장공간 하나에서 가상의 또 다른 저장 공간을 만드는 것이다. Branch 특징 가상 폴더 작업 폴더를 실제로 복사하지 않고, 가상 폴더로 생성한다. 외부적으로는 물리적인 파일 하나만 있는 것으로 보인다. 독립적인 동작 원본 폴더와 분리하여 독립적으로 개발 작업을 수행할 수 있다. 분리된 코드를 좀 더 쉽게 병합할 수 있다. 빠른 동작 다른 버전관리 도구에 비해 가볍고 전환이 빠르다. 왜냐하면 Blob 개념을 도입하여 내부를 구조화 하기 때문이다. Blob는 포인트와 유사한 객체이며, 이 포인터를 이용해 빠르게 전환이 가능하다. (참조 : https://ko.wikipedia.org/wiki/%ED%8F%AC%EC%9D%B..

Git 2023.05.27

[Git 교과서] 5장 서버

서버 저장소 서버저장소는 원격(remote)저장소 라고 하며, 로컬저장소의 복사본이며, 안전하게 보관하고 다른사람들과 협업이 가능하다. 5.1 깃허브 안정적인 서버를 운영하기위해 깃 호스팅서비스 인 깃허브를 많이 사용한다. 공개용 저장소로 생성하면 무제한 생성가능 하다. 한 소유주(owner) 안에서, 같은이름의 저장소 생성 불가능하다. 5.3 깃허브 연동 및 원격등록 로컬저장소 연결방법 새로운 로컬저장소에 원격저장소를 연결하는 방법 $ mkdir git-study # 폴더만들기 $ cd git-study # 폴더로이동 $ git init # 저장소를 초기화 $ echo "# git-study" >> README.md # "# git-study" 라는 text를 README.md로 밀어넣기 $ git a..

Git 2023.05.24

[Git 교과서] 4장 커밋

commit git commit 코드 변화를 (코드 변경 이력과 시점을) 기록하는 동작. 커밋을 하는 이유 변경 내용이 많은 경우 사용자가 일일이 기억하지 않아도 된다. 개발하는 도중 실수나 여러 이유로 이력을 되돌려야 할 때 변경 전 시점으로 되돌아 갈 수 있다. 전통적인 파일 이력 관리와 깃의 다른점 파일을 복사해서 파일명을 변경했고 변경 내용을 기록하는 것보다 많은 파일을 생성하고 관리해야 하는 부작용이 있다. 중복되는 내용이 많아 용량도 많이 차지한다. 깃은 반대로 동일한 파일 이름으로, 하나로 관리가 가능하다. 깃의 커밋은 새로 변경된 부분만 추출하여 저장한다. 새 파일 등록 워킹 디렉토리에 있는 새 파일을 커밋하려면 untracked 상태를 추적 가능한(tracked) 상태로 변경해야 한다...

Git 2023.05.11

[Git 교과서] 3장 깃 개념 잡기

3.1 폴더와 깃 저장소 폴더와 깃 저장소는 외형적으로는 폴더와 유사하다. 사용자 입장에서는 일반 폴더와 깃 저장소를 구별 없이 모두 동일하게 사용할 수 있다. 깃 저장소에는 별도의 숨겨진 영역에 버전 관리 시스템에 필요한 파일 변경 이력을 기록한다. 저장소를 생서 하려면 초기화 명령어를 통해 VCS 관리를 위한 숨겨진 영역 생성하는 작업이 필요하다. 초기화 명령어 git init을 입력하면 .git숨겨진 폴더가 생성된다. 3.2 워킹 디렉터리 작업 공간으로 로컬 조장소에 접근할 수 있으며, 실제로 파일을 생성하고 수정하는 공간이다. untracked 상태 : 워킹 디렉터리 안에서파일을 추가 수정작업 이후 따로 통지해 주지 않은 상태로 깃이 따로 관리해 주지 않는다. tracked 상태 : git에서 관..

Git 2023.05.02