* Git 커밋 위치
- origin/master
원격 저장소 origin의 브랜치인 master 위치
- origin/HEAD
원격 저장소 origin을 복제해 올 때 다운로드 되는 커밋 위치
일반적으로 origin/master와 동일 위치
- master
로컬 저장소 브랜치
* 브랜치?
여러 개발자들이 동시에 다양한 작업을 할 수 있도록
각자 독립적인 저장소에서 마음대로 소스코드 변경
독립적으로 어떤 작업을 진행하기 위한 개념
master가 아닌 새로운 브랜치를 만들어서
이 브랜치를 사용할꺼야! [체크아웃!!] 하기 전에는
모든 작업은 master에서 진행
* 브랜치 종류
- 통합 브랜치
언제든지 배포할 수 있는 버전을 만들 수 있는 브랜치
소스코드 내 모든 기능이 정상적으로 동작하는 상태
보통 master 브랜치를 통합 브랜치로 사용
- 토픽 브랜치
기능 추가, 버그 수정 등 단위 작업을 위한 브랜치
통합 브랜치로부터 토픽 브랜치 생성, 토픽 브랜치에서 작업이 완료되면 통합 브랜치에 병합
* 체크아웃
현재 브랜치가 아닌 다른 브랜치에서 작업하고 싶을 때
Check Out 명령어를 실행해 원하는 브랜치로 전환
체크아웃 실행 시, 브랜치 안에 있는 마지막 커밋 내용이 작업 트리에 보임
브랜치가 전환되었으므로 이후 실행한 커밋은 전환한 브랜치에 추가
커밋 가능한 변경 내용 중에 전환된 브랜치에서도 한차례 변경이 되어 있는 경우, 체크아웃에 실패할 수도..
-> 이전 브랜치에서 커밋하지 않은 변경 내용을 커밋
stash를 이용해 일시적으로 변경 내용을 다른 곳에 저장, 충돌 회피 한 뒤 체크아웃
- stash?
파일의 변경 내용을 일시적으로 기록해두는 영역
작업 트리와 인덱스 내 아직 커밋하지 않은 변경을 일시적으로 저장 가능
* merge
여러 개의 브랜치 모으기
master 브랜치의 상태가 변경사항이 없으면 fast-forward 병합
cf. non fast-forward 병합 : 브랜치가 그대로 남아 있어 브랜치로 실행한 작업 확인 및 관리 유용
master 브랜치의 여러 변경 사항이 있으면 master 브랜치와 다른 브랜치의 변경 내용을 하나로 통합해야 함
-> 양쪽의 변경을 가져온 merge commit 실행
cf. rebase
변경 이력은 단순해지나, 원래의 커밋 이력이 변경
정확한 이력이 필요한 경우 사용 X
* fetch
- 원격 저장소의 내용을 확인만 하고 로컬 데이터와 병합하고 싶지 않은 경우 해당 명령어 실행
- 원격 저장소의 최신 이력 확인
- 원격 저장소의 내용을 로컬 저장소의 master에 통합하고 싶은 경우, FETCH 브랜치를 merge 하거나 pull 실행
(pull = fetch + merge)
* push
로컬 저장소에서 작성한 브랜치를 공유하려면 명시적으로 원격 저장소로 push
* 태그
커밋을 참조하기 쉽도록 알기 쉬운 이름을 붙이는 것
- 일반 태그 : 이름만
- 주석 태그 : 이름, 태그 설명, 서명, 만든 사람 이름, 이메일, 날짜 등등..
* revert
- 특정 커밋 내용 삭제
- 특정 커밋의 내용을 지우는 새로운 커밋을 만들어서 안전하게 처리
* reset
더 이상 필요 없어진 커밋을 버리기
- 리셋 옵션
soft - 커밋만 되돌릴 때
mixed - 변경한 인덱스의 상태를 원래대로 되돌릴 때
hard - 최근 커밋을 완전히 버리고 이전 상태로 되돌릴 때
* cherry-pick
다른 브랜치에서 지정한 커밋을 복사해 현재 브랜치로 가져옴
- 특정 브랜치에 잘못 추가한 커밋을 올바른 브랜치로 옮기려 할때
- 다른 브랜치의 커밋을 현재 브랜치에도 추가하고 싶을 때
출처
http://backlogtool.com/git-guide/kr/
'공부 > 기타' 카테고리의 다른 글
| CSTS) 테스트 개요 및 전략 (0) | 2020.06.08 |
|---|---|
| 3D Stereoscopy (0) | 2018.01.14 |
| git 용어 (0) | 2015.03.31 |
| git 참고 사이트 (0) | 2015.03.31 |
| 활동 정리 (0) | 2014.10.26 |
댓글