버전 관리
파일을 공유하고 동기화하기 위해 사용하는 시스템.
Git
분산 버전 관리 시스템.
GitHub
Git을 위한 원격 저장소.
Git 기본 명령어
1. 저장소 초기화
- git init → 로컬 저장소(.git) 생성
2. 파일 상태 확인
- git status → 현재 파일의 상태 확인
3. 파일 추가 및 커밋
- git add [파일명] → 무대(Stage)에 올리기. 사진 찍기위해 무대로 올림.
- git commit -m "메시지" → 변경사항을 저장. 사진 찍음
4. 커밋 확인
- git log → 커밋 목록 확인
5. 버전 이동
- git checkout [커밋ID] → 특정 커밋으로 이동
- git switch와 git restore 명령어로 기능이 분리됨
브랜치와 병합
1. 브랜치 개념
- main → 기본(주된) 저장소
- branches → 독립적인 작업을 위해 생성하는 가지(branch)
2. 브랜치 사용 흐름
- 새로운 브랜치에서 작업 → git branch [브랜치명]
- 브랜치로 이동 → git checkout [브랜치명]
- 변경 후 커밋 → git add . → git commit -m "메시지"
- 원격 저장소에 올리기 → git push origin [브랜치명]
- main에 병합
- git checkout main
- git merge [브랜치명]
- main 브랜치를 원격 저장소에 업로드 → git push origin main
이 과정을 통해 브랜치를 활용하여 안전하게 main에 반영 가능.
병합(Merge) 과정에서 충돌(Conflict) 발생 원인 및 해결 방법
1. 충돌 발생 원인
- 같은 파일의 같은 부분을 여러 브랜치에서 서로 다르게 수정했을 때.
- Git이 자동으로 병합하지 못하는 경우 발생.
예시:
- main 브랜치에서 file.txt 수정
- feature 브랜치에서도 같은 file.txt 수정
- feature 브랜치를 main에 병합할 때 충돌 발생
2. 충돌 해결 방법
충돌 확인
- git merge [브랜치명] 실행 후 충돌 발생 메시지 확인
- git status로 충돌이 발생한 파일 확인
충돌 해결 과정
- 충돌이 발생한 파일 열기 (git status에서 표시됨)
- 충돌 표시 부분 수정
<<<<<<< HEAD
main 브랜치의 내용
=======
feature 브랜치의 내용
>>>>>>> feature
- HEAD 아래는 현재 브랜치(main)의 내용
- ======= 아래는 병합하려는 브랜치(feature)의 내용
- 최종적으로 유지할 코드만 남기고 정리
- 수정 후 변경 사항 저장
git add [충돌 해결한 파일]
git commit -m "충돌 해결"
- 병합 완료 후 git push origin main으로 원격 저장소 반영
'[LG 유플러스] 유레카 > Today I Learned' 카테고리의 다른 글
[TIL][02.28] DBMS, SQL, 제약조건, JDBC (0) | 2025.03.03 |
---|---|
[TIL][02.27] Git, conflict, tag, fork, reset, rebase, merge, revert, GitHub (0) | 2025.02.27 |
[TIL][02.25] 백트래킹, N-Queens, 위상정렬 (0) | 2025.02.25 |
[TIL][02.24] MST, Kruskal, Prim, Dijkstra (0) | 2025.02.25 |
[TIL][02.21] 그래프, 트리, BFS, DFS, 스택, 큐 (0) | 2025.02.24 |