-
(3주차 16일) Git, Sourcetree수업 내용 정리 2024. 5. 28. 17:19
Git
> Git 설치
- git --version -> 설치된 깃 버전 확인
- brew upgrade git -> 설치된 깃 업데이트
- Sourcetree 설치
> Git 저장소 추가
- 터미널
- cd /Users/.../Develop/gittest
- git init
- Sourcetree
- 로컬 저장소 생성
- Clone: 원격 저장소의 내용을 로컬 저장소에 복제하는 것
- Index(Stage Area)
- Commit 하기 위해 추가하는 파일들이 저장되는 공간을 Index라고 한다.
- 사용자 입장에서는 Commit 대기 상태란 뜻으로 Staging Area라고 부르기도 한다.
> 커밋(Commit)
- 로컬 저장소에 파일이나 폴더의 변경 사항을 기록하는 작업
- Git은 Commit을 시간 순으로 저장하며 이전 Commit 상태부터 현재 Commit 상태까지 만들어 보관한다.
- 스테이지에 올라가지 않은 파일을 스테이지에 올린다.
- 다수의 파일을 하나의 커밋으로 저장할 수 있다.
커밋 히스토리에 태그를 추가하여 식별할 수 있다. > 브랜치(Branch)
- Branch: 저장소 내에서 다른 작업에 영향을 받지 않는 독립된 저장소 단위
- 새 브랜치를 생성하는 경우, 현재 커밋 상태를 기준으로 분기된다.(Default)
* 명시된 커밋을 선택하여 원하는 커밋 상태로부터 분기할 수 있다. - 브랜치가 분기되어 커밋되는 경우, 각 브랜치에서는 분기 이후 변경 사항을 확인할 수 없다.
- 새 브랜치를 생성하는 경우, 현재 커밋 상태를 기준으로 분기된다.(Default)
> 체크아웃(Checkout)
- 현재 Branch를 다른 Branch로 전환하는 것
- 새 브랜치를 선택해 현재 브랜치를 다른 브랜치로 전환할 수 있다(Checkout).
- 분기된 이후 작업한 내용을 커밋하지 않고 체크아웃을 시도하는 경우, 커밋이 필요함
* 커밋 없이도 이동 가능한 경우: 기존 파일이 수정되지 않고, 파일이 새로 생성되는 경우(각 브랜치에서 초기 파일인 경우)
주의) 추후 문제 발생 가능하므로, 커밋하고 브랜치 옮기기
분기 생성 분기된 작업 이후 커밋하지 않고 체크아웃 하는 경우, 오류 발생 HEAD 태그를 통해 태그 혹은 히스토리 목록으로 체크아웃 할 수 있다. > 병합(Merge)
- 특정 브랜치의 작업 내용을 다른 브랜치에 병합하는 것
- 하위 요소 대화식 재배치(rebase): 부모 커밋 로그에서 자식 커밋 로그들을 합칠 수 있다.
> 보관(Stash)
- 현재 작업 중인 변경 사항을 모두 보관하고 대기 중인 파일 상태를 청소함: 임시 공간에 넣고, 체크아웃하기 용이한 상태로 전환함
> 제거(Discard)
> 초기화
- 커밋 초기화: 선택된 커밋 로그로 브랜치 포인터를 옮김(적용한 커밋은 초기화된다.)
- Soft: 초기화하되 그동안 작업했던 내용은 유지, 스테이지에 작업파일이 올라간다.
- Mixed: 작업 상태는 그대로 두되, 인덱스는 리셋 -> 스테이지에 작업파일이 올라가지 않는다.
- Hard: 작업 상태 내 모든 변경 사항을 버림(삭제)
> 커밋 되돌리기(Revert)
- Revert한 커밋을 다시 Revert하는 경우, 수정 작업을 완료한 상태(최초 Revert하기 전 상태)로 돌아온다.
'수업 내용 정리' 카테고리의 다른 글
(3주차 18일) UML, 코딩 표준 (0) 2024.05.30 (3주차 17일) Git, Git Flow (0) 2024.05.29 (3주차 15일) Ubuntu, MariaDB (0) 2024.05.27 (2주차 12일) 인덱스, 프로시저, 트리거 (0) 2024.05.24 (2주차 11일) 테이블 실습 (0) 2024.05.23