Git & GitHub 명렁어

GOYENA·2025년 3월 27일

Git & GitHub

1. 자주쓰는 터미널 명령어

  • pwd
  • ls
  • ls -a
  • cd 폴더
  • mkdir
  • touch

2. Git? GitHub?

❓Git - 코드 변경점 기록

❓GitHub - 온라인 코드 저장소 for 백업, 공유, 협업


3. Git 명령어

Git 초기화 및 기본 명령어

git init

  • 현재 디렉토리에 .git 파일 생성
  • Git 초기화 취소: rm -r .git

git add <파일이름>

  • 파일을 Staging 영역에 추가
  • 한꺼번에 저장: git add .

git commit -m "메시지"

  • Staging 영역의 파일을 Local Repository 영역으로 커밋
  • 커밋 후 Staging 영역이 비워짐
  • 특정 파일만 커밋: git commit <파일명> -m "메시지"

git status

  • Working directory(파일 변경 상태), Staging(add 영역 상태) 확인
  • 커밋 전후 변경 사항 확인

예시:

  • ab 파일을 git add 후:
    Changes to be committed:
    modified:   a
    modified:   b
  • a 파일만 commit한 후:
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    modified:   b

git pull vs git fetch

git pull

  • 원격 저장소에서 변경 사항을 가져와 자동으로 병합

git fetch

  • 변경 사항만 가져오고, 병합은 수동으로

git log

  • 커밋 히스토리를 시간 순으로 나열
  • 특정 브랜치 로그 확인: git log <브랜치명>

git log 옵션

  • --oneline: 각 커밋을 한 줄로 표시 → git log --oneline
  • --graph: 커밋 히스토리를 트리 형태로 표시 → git log --graph
  • --author="이름": 특정 작성자의 커밋만 필터링 → git log --author="홍길동"
  • --since="날짜": 지정한 날짜 이후 커밋 표시 → git log --since="2024-01-01"
  • --until="날짜": 지정한 날짜 이전 커밋 표시 → git log --until="2024-11-01"
  • -p: 각 커밋의 변경 내용을 표시 → git log -p

4. Git과 GitHub 연동

GitHub 연동

git init
git remote add origin <github 주소>
git branch -M main
git push -u origin main

GitHub 코드 로컬 이식

git clone <github 주소> .

코드 수정 후 원격 브랜치 업로드

git pull
git add .
git commit -m "메시지"
git push origin <브랜치명>

로컬 브랜치로 다운로드

git pull

git pull 옵션

  • git config pull.rebase false: Merge 방식 사용
  • git config pull.rebase true: Rebase 방식 사용
  • git config pull.ff only: Fast-Forward 병합만 허용

충돌 발생 시 해결 방법

  1. git pull 실행 시 충돌 발생
  2. 충돌된 파일에 표시된 변경 내용 확인
    <<<<<<< HEAD  (로컬 변경 사항)
    =======       (구분선)
    >>>>>>> <해쉬값> (원격 변경 사항)
  3. 충돌 해결 후 파일 저장
  4. git add .
  5. git commit -m "충돌 해결 메시지"

5. 브랜치

브랜치를 사용하는 이유

  • 독립적인 작업 환경 유지
  • 버전 관리 용이
  • 협업 시 충돌 최소화

브랜치 명령어

브랜치 생성

git branch <브랜치이름>

브랜치 목록 확인

git branch

q 키를 눌러 빠져나올 수 있음.

브랜치 이동

git switch <브랜치이름>

또는

git checkout <브랜치이름>

브랜치 생성 및 이동

git switch -c <브랜치이름>

또는

git checkout -b <브랜치이름>

Merge

터미널에서 Merge

  1. 로컬 브랜치 생성
  2. 로컬 브랜치 이동 후 코드 수정
  3. 원격 브랜치로 이동
    git switch <(원격)브랜치명>
  4. 원격 브랜치와 로컬 브랜치 병합
    git merge <(로컬)브랜치명>

GitHub에서 Merge / Pull Request (PR)

  1. 로컬 브랜치 생성 및 이동
  2. 코드 수정 후 커밋
    git add .
    git commit -m "메시지"
    git push origin <(로컬)브랜치명>
  3. GitHub에서 Compare & pull request 버튼 클릭
  4. Base 브랜치(원격 브랜치) 및 Compare(로컬 브랜치) 설정
  5. 변경 사항 및 메시지 입력 후 Create pull request
  6. 코드 리뷰 확인 후 Merge pull request 클릭

로컬 브랜치(main)에서 원격 브랜치 병합

git checkout main
git pull origin main

Dev 브랜치 관리

git pull origin dev
  • Dev 브랜치의 변경 사항을 병합하여 테스트 후 Merge
  • 충돌을 방지하고 최신 상태로 유지 가능
profile
헤헷

0개의 댓글