Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 티스토리챌린지
- go
- 롬복
- Codeup
- 오블완
- Gradle
- 클린코드
- golang
- Git
- Spring
- Python
- springboot
- H2 설치
- Vue.js
- MySQL
- Postman
- spring security
- thymeleaf
- java
- 스프링
- mariadb
- Spring Boot
- GitHub
- 기초100제
- 파이썬
- JPA
- 객사오
- 알고리즘
- 코드업
- 클린 코드
Archives
- Today
- Total
nyximos.log
[Git] 브랜치로 작업하기 본문
Branch
- 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것이다.
- 독립적으로 어떤 작업을 진행하기 위한 개념
- 다른 branch의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다.
- 기본적으로 Git은 master branch를 만든다.
- checkout 하지 않는 이상, 모든 작업은 master branch에서 이루어진다.
- 처음 커밋하면 이 master branch가 생성된 커밋을 가리킨다.
- 이후 커밋을 만들면 master branch는 자동으로 가장 마지막 커밋을 가리킨다.
- master branch는 다른 브랜치와 다른 것이 없다.
- git init 명령으로 초기화 할때 자동으로 만들어진 이름을 변경하지 않기 모든 저장소에는 master branch가 존재한다.
Head
- 단순히 repository의 현재 "위치"를 가리키는 포인터
- 현재 사용중인 branch의 선두부분을 나타내는 이름
- Head를 이동하면 사용하는 branch가 변경된다.
브랜치 전환하기
- Git에서는 항상 작업할 브랜치를 선택해야 한다.
- 선택된 브랜치가 아닌 다른 브랜치에서 작업하고 싶을 때, checkout 명령어를 실행해 원하는 브랜치로 전환한다.
- 체크아웃 실행 → 브랜치 안에 있는 마지막 커밋 내용이 작업 트리에 펼쳐짐
브랜치 명으로 branch를 생성
새로 만든 브랜치도 지금 작업하고 있던 마지막 커밋을 가리킨다.
git branch
브랜치 목록 전체 확인
git checkout 브랜치명, git switch 브랜치명
내가 사용할 브랜치 지정
git checkout -b 브랜치명, git switch -c 브랜치명
브랜치 작성과 체크아웃을 한꺼번에 실행
브랜치 병합하기
git merge 커밋명
지정한 커밋 내용이 HEAD가 가리키고 있는 브랜치에 넣어진다.
브랜치 삭제하기
git branch -d 브랜치명
git branch -D 브랜치명
강제 삭제할 경우 -D 옵션으로 삭제한다.
Merging
특정 커밋이 아닌 branch를 병합한다.
언제나 현재 HEAD branch를 기준으로 병합한다
충돌 해결하기
1. merge conflict가 있는 파일을 연다.
2. 파일을 편집하여 충돌을 제거한다.
3. 파일에서 충돌 "markers"를 제거한다.
4. 변경사항을 추가한 후 커밋한다.
👻 Visual Studio Code 에서 기능을 사용할 수도 있다.
Accept Current Change : head 부분 적용
Accept Incoming Change : 변경된 부분 적용
Accept Both Change : 둘다 적용
Compare Change : conflict 부분을 더 보기 쉽게 보여줌
참조
'Programming > Git&GitHub' 카테고리의 다른 글
[GitHub] Branch protection rules로 브랜치 규칙 지정하기 (0) | 2024.08.21 |
---|---|
[Git] Git Workflow, Git이 데이터를 저장하는 법 (0) | 2022.02.16 |
[Git] Git의 기초, Repository, commit (0) | 2022.02.11 |
[Git] 사용자 이름 및 이메일 구성하기 (0) | 2022.02.08 |
[Git] Git 이란? (0) | 2022.02.08 |