TIL 24.11.12

윤지·2024년 11월 12일
post-thumbnail

Git & Github 특강

강사: 김동영 강사님
일시: 2024년 11월 12일 14:00 - 18:00(4시간)

Git 사용 이유

  • Git: 버전 관리 시스템(VCS)으로, 파일의 변경 이력 기록 및 필요 시 되돌리기 가능한 소프트웨어

버전 관리의 필요성

  • 변경 사항 기록: 누가, 언제, 무엇을 수정했는지 기록
  • 이유 명시: 커밋 메시지를 통해 수정의 의도 표현
  • 과거로 돌아가기: 특정 시점으로 되돌리기 가능, 추적 가능한 변경 내역 유지

터미널 명령어 요약

명령어설명사용 예시
pwd현재 작업 중인 디렉토리 경로 확인pwd
ls현재 디렉토리 내 파일/폴더 목록 조회ls -l,ls -a,ls -h
mkdir새로운 디렉토리 생성mkdir 디렉토리_이름
cd특정 디렉토리로 이동cd [디렉토리_경로]

Git 설정 및 초기화

설치 및 초기 설정

  1. 설치: Git 다운로드 페이지에서 설치

  2. 초기 설정:

    git config --global user.name "Your Name"
    git config --global user.email "your.email@example.com"
    • 설정 확인: git config --global --list

깃 명령어

Git의 모든 사용 가능한 명령어 목록

git help -a

주요 Git 명령어 요약

명령어설명
git init새 Git 저장소 초기화
git status저장소 상태 확인
git clone원격 저장소를 로컬로 복사
git add변경사항 스테이징 영역에 추가
git commit스테이징된 변경사항을 저장소에 기록
git branch브랜치 생성/삭제/조회
git switch브랜치 전환
git reset커밋 되돌리기/스테이징 영역 리셋
git push로컬 변경사항을 원격에 업로드
git pull원격 변경사항을 가져와 병합
git merge브랜치 병합
git revert특정 커밋을 되돌리는 새로운 커밋 생성

GitHub와 버전 관리 시스템

VCS 종류 비교

  • 중앙집중식 VCS:
    • 단일 중앙 저장소에 버전 정보 저장
    • 예: SVN
  • 분산 VCS (예: Git):
    • 각 개발자가 전체 저장소의 복사본을 로컬에 보유
    • 장점: 오프라인 작업 가능, 빠르고 유연한 협업 가능

git log

git log 명령어: 커밋 히스토리 조회에 사용

git log [옵션]

주요 옵션:

  • --oneline: 각 커밋을 한 줄로 요약하여 표시
  • --graph: 브랜치와 병합 히스토리를 아스키 그래프로 표시
  • --author=[이름]: 특정 작성자의 커밋만 표시
  • --since, --after: 특정 날짜 이후의 커밋만 표시
  • --until, --before: 특정 날짜 이전의 커밋만 표시

예시:

git log --oneline

git show

git show 명령어: 특정 커밋의 상세 정보 표시

git show [옵션] [커밋 해시]

주요 기능:

  • 특정 커밋의 메타데이터(작성자, 날짜, 메시지 등) 표시
  • 해당 커밋에서 변경된 파일 내용 확인
  • 커밋 간의 차이점 확인

예시:

git show abc123

Branch

작업의 분기점

브랜치 생성

git branch [브랜치명]

브랜치 목록 확인

git branch

브랜치 전환

git switch [브랜치명]
# 또는
git restore [브랜치명]

브랜치 생성 및 전환

git switch -c [브랜치명]
# 또는
git restore -c [브랜치명]

브랜치 삭제

git branch -d [브랜치명]

브랜치 병합

git merge [브랜치명]

Conflict(충돌)

# 병합 중 충돌 발생 시, 충돌 해결 후
git add [충돌_해결된_파일]
git commit -m "Merge branch 'feature'"

Merge vs Rebase

Merge

  • 기능: 병합할 브랜치의 변경 사항을 현재 브랜치에 통합
    git merge branch_name

Rebase

  • 기능: 브랜치의 시작점을 재설정하여 깔끔한 커밋 히스토리 생성
    git rebase main
  • 주의: 공개 저장소에 푸시된 커밋 리베이스 시 협업에 문제 발생 가능성 있음

Git 되돌리기

Revert

  • 기능: 특정 커밋의 변경사항을 취소하는 새로운 커밋 생성
    git revert commit_hash
  • 장점: 히스토리 유지 및 협업 시 안전하게 사용 가능

Reset

  • 기능: 커밋 기록을 되돌리거나 작업 디렉토리 상태를 되돌림
    git reset --hard commit_hash
  • 옵션:
    • -soft: 인덱스와 작업 디렉토리를 그대로 둔 채 HEAD 이동
    • -mixed: HEAD와 인덱스 이동, 작업 디렉토리는 그대로
    • -hard: HEAD, 인덱스, 작업 디렉토리 모두 리셋

💬 마치며

데브코스 하면서 들은 첫 특강이었다 깃허브를 평소에 사용하긴 했지만 vscode 소스제어 이용해서 주로 사용하였는데 다양한 터미널 명령어를 배울 수 있었다
그리고 깃충돌도 평소에 해결해 볼 일이 없었는데 이번 특강을 통해서 체험?해 보았다 👍

프로젝트 시작되고 복습은 거의 못하고 있는 중... 이번 주말 잘 활용해 보자

profile
프론트엔드 공부 기록 아카이빙🍁

0개의 댓글