728x90
본 내용은 인프런의 제대로 파는 Git & GitHub - by 얄코 및 Codeit 으로 공부한 내용을 복붙 및 정리했습니다.
수정중입니다.
👉 Branch(브랜치)
- 프로젝트를 하나 이상의 모습으로 관리해야 할 때
- 예) 실배포용, 테스트서버용, 새로운 시도용
- 여러 작업들이 각각 독립되어 진행될 때
- 예) 신기능1, 신기능2, 코드개선, 긴급수정 등
- 각각의 차원에서 작업한 뒤 확정된 것을 메인 차원에 통합
- checkout 명령어가 switch, restore 역할 분리되었습니다.
📌 브랜치 명령어
- 브랜치 생성
- git branch < 브랜치명>
- 브랜치 삭제
- git branch -d <브랜치명>
- 브랜치 목록 확인(로컬저장소만)
- git branch
- 브랜치 목록 확인(원격저장소 포함)
- git branch -all
- 원격 저장소 브랜치 가져오기
- git checkout -t origin/<브랜치명>
- 로컬 저장소 브랜치를 원격 저장소로 추가
- git push -u origin <브랜치명>
- 원격 브랜치 삭제
- git push <원격이름> --delete <원격의 브랜치명>
📌 브랜치 합치는 방법
Merge
- 브랜치를 main 으로 합치는 경우
- reset 으로 되돌리기 가능
# main 브랜치로 이동
git merge <브랜치명>
ex) git merge add-coach
merge 적용한 이후
- 병합된 브랜치는 삭제
# 사용이 끝났기 때문에 제거
git branch -d <브랜치명>
📌rebase
팀원들끼리 이미 공유된 커밋들에 대해서 rebase 를 사용하지 않는 것이 좋다.
# merge 와 반대로 앞에 붙이는 브랜치를 메인으로 사용
git rebase main
# main branch는 여전히 이전 위치에 존재하고 있기 때문에 이동시켜야한다.
# main 브랜치로 이동 후 아래 명령어로 new-teams의 시점으로 fast-forward
# main 브랜치로 이동
git merge new-teamse
📌브랜치 충돌 해결
# merge를 중단하고 되돌리기
git merge --abort
만약 출동 해결이 어려운 경우
git merge --abort
git rebase --continue
👉 HEAD
- 특정 브랜치의 최신 커밋 위치를 나타내고 있다.
- 현재 HEAD 위치 앞 뒤로 이동
- ^ 또는 ~ : 개수만큼 이전으로 이동
# check out
git checkout HEAD^^^ : 세 칸 뒤로 가겠다.
git checkout HEAD~~ : 두 칸 뒤로 가겠다.
git checkout - : 컨트롤 + z 와 같은 느낌으로 한 단계 되돌려준다.

- HEAD는 아직 이름이 안 지어진 브랜치 이다.

[git hash]
- commit 값?? 대신 옆에 빨간 박스의 값을 hash 라고 하며 사용할 수 있다.

👉 과거로 돌리는 방법
📌 Reset VS Revert
[Reset]
- git reset --hard “<해쉬>"
-
- 말 그대로 시간을 과거로 돌리는 방법
- 과거로 돌아간 다음 History 에서 삭제 된다.(이후 시점의 기록들이 삭제 된다.)
-
- git reset --soft
- repository 에서 staging area 로 이동
- git reset --mixed
- repository 에서 working directory 로 이동
[Revert]
- 한 번 공유가 된 commit 들은 revert 를 이용해서 되돌려야 한다.
- 삭제하지 않고 특정 부분만 콕 집어서 되돌릴 수 있다.
'Computer Science > Version Control System' 카테고리의 다른 글
Discard / Update branch (0) | 2024.01.17 |
---|---|
Git - part 5 (0) | 2022.07.15 |
Git - part 4 (0) | 2022.07.04 |
Git - part 2 (0) | 2022.07.04 |
Git - part 1 (0) | 2022.07.04 |