브랜치(Branch)
소프트웨어를 개발할 때, 개발자들간에 동일한 소스코드를 함께 공유하고자 할 때.
하나의 소스코드로 동시에 다양한 작업을 할 수 있음.
브랜치 생성
터미널 켜기 -> git branch [branch명] -> git switch [branch명] (HEAD가 가리키는 브랜치 변경) -> git commit
=> 브랜치가 생성됨.
브랜치 합치기
merge
git switch [브랜치명1] -> git merge [브랜치명2] (중복된 부분이 있으면 살릴 부분을 정해두어야 함)
-> git switch [브랜치명2] -> git merge [브랜치명1]
rebase
git rebase [브랜치명1] -> git switch [브랜치명1] -> git rebase [브랜치명2]
정돈되어 로그가 나타남.
HEAD: 브랜치에 숨겨진 것
작업 트리의 최신 커밋. 일반적으로 브랜치를 가리킴.
상대 참조: 이곳을 기준으로 몇번째 이전 커밋은?
git switch HEAD^
^으로 한번 뒤로. ^의 개수만큼 뒤로 가고, ~뒤에 숫자를 붙이면 그 만큼 뒤로.
(^: Caret, ~: Tilde)
브랜치가 가리키는 커밋의 위치를 바꿀 수 있음
-> git branch -f [브랜치1] [브랜치2] ~ 2
브랜치1을 브랜치2의 2번째 이전으로 옮기기
작업 되돌리기
완전히 기록 지우기 -> git reset HEAD~1 : 최근 커밋 한개 지우기. 로컬에서만 사용해야 함. 히스토리를 고쳐써서
git revert HEAD : 다른 사용자와 같이 사용할 때는 revert로
삭제된 커밋, 브랜치 복구
git reflog : 모든 로그 확인. 해시 값을 확인할 수 있음.
git reset --hard 커밋의 Hash : Hash 값으로 되돌리기
리셋으로 한것도 해시 값이 남기 때문에 복구 가능
커밋 수정
git command --amend -m "메시지" : 가장 최근 커밋을 수정. amend를 수행한 커밋은 기존 커밋과 완전히 다른 별개의 커밋이 된다. 다른 작업자가 작성한 내용에 대해서는 amend 옵션을 사용하지 말자
실수로 브랜치 변경하지 않고 커밋 시
git cherry-pick B2 B3 B4
git cherry-pick B2...B4
'CS' 카테고리의 다른 글
5.3 비선형 자료구조 (0) | 2024.10.19 |
---|---|
5.2 선형 자료 구조 (0) | 2024.10.18 |
5.1 복잡도 (1) | 2024.10.01 |
4.7 조인의 원리 (2) | 2024.09.30 |
4.6 조인의 종류 (1) | 2024.09.28 |