본문 바로가기
Git

Git 기본

by hihijh826 2025. 3. 20.
728x90
반응형
SMALL

1. Git 기본 개념

  • Repository (저장소)
    • 로컬 저장소 Local Repository: 로컬 컴퓨터에 있는 저장소
    • 원격 저장소 Remote Repository: GitHub 등 원격 서버에 있는 저장소
  • Branch (브랜치)
    • 독립적인 작업 공간
    • main/master: 기본 브랜치
    • feature: 기능 개발용 브랜치
    • hotfix: 긴급 수정용 브랜치
  • 원격저장소 연결 → 올리기

 

1. 원격 저장소와의 상호작용 관련 명령어

 

사용 시나리오

일반적인 Fork & Pull Request 워크플로우

# 1. upstream 저장소 등록 (최초 1회만)
git remote add upstream <https://github.com/original-owner/original-repository.git>

# 2. upstream 확인
git remote -v

# 3. upstream의 최신 변경사항 가져오기
git fetch upstream

# 4. 로컬 main 브랜치에 upstream의 변경사항 병합
git checkout main
git merge upstream/main

# 5. (fork가 upstream일때) 변경사항을 자신의 원격 저장소(origin)에 push 
git push origin main

  • fetch: 원격 저장소의 변경사항을 가져오기만 하고, 로컬 브랜치에 병합하지 않음
  • push: 로컬 변경사항을 원격 저장소에 올릴 때 사용하는 URL
  • pull: fetch + merge를 한 번에 수행 (바로 병합까지 실행)
  • git fetch upstream : upstream 원격 저장소의 최신 변경사항을 로컬로 가져오는 명령어
# upstream 저장소 추가
git remote add upstream [URL]

# 특정 브랜치만 fetch
git fetch upstream [브랜치명]

# 모든 브랜치 fetch
git fetch upstream

# upstream 정보 확인
git remote -v

# upstream 삭제
git remote remove upstream

 

2. 로컬 저장소와의 상호작용 관련 명령어

# 저장소 생성
git init

# 파일 상태 확인
git status

# 파일 추가
git add <파일명>
git add .  # 모든 변경사항 추가

# 커밋하기
git commit -m "커밋 메시지"

# 원격 저장소 연결
git remote add origin <원격저장소URL>

# 원격 저장소에 푸시
git push origin <브랜치명>

# 원격 저장소에서 가져오기
git pull origin <브랜치명>

  • 1번은 주로 원격 저장소와의 상호작용에 중점을 둠. 특히, 원본 저장소(upstream)와의 동기화에 관련된 명령어들.
  • 2번은 로컬 저장소에서의 작업과 관련이 있음. 로컬에서의 파일 상태 확인, 변경 사항 커밋, 그리고 개인 원격 저장소(origin)와의 상호작용에 중점을 둠.

 

3. 브랜치 관련 명령어

# 브랜치 생성
git branch <브랜치명>

# 브랜치 이동
git checkout <브랜치명>
git switch <브랜치명>  # 최신 버전

# 브랜치 생성 및 이동
git checkout -b <브랜치명>

# 브랜치 목록 보기
git branch

# 브랜치 삭제
git branch -d <브랜치명>

 

4. 병합 관련

# 브랜치 병합
git merge <브랜치명>

# 충돌 해결 후
git add .
git commit -m "Merge conflict resolved"

 

5. 기타 유용한 명령어

# 변경 이력 확인
git log
git log --oneline  # 한 줄로 보기

# 특정 커밋으로 되돌리기
git reset --hard <커밋해시>

# 마지막 커밋 수정
git commit --amend

# 변경사항 임시 저장
git stash
git stash pop  # 임시 저장한 변경사항 적용

 

6. .gitignore

# .gitignore 파일 예시
node_modules/
.env
*.log

 

7. 자주 발생하는 상황별 해결방법

 

  1. 커밋 메시지 수정
git commit --amend -m "새로운 커밋 메시지"

 

2. 이전 커밋으로 되돌리기

# 커밋은 유지하고 이전 상태로 되돌리기
git revert <커밋해시>

# 커밋 이력도 삭제하고 되돌리기
git reset --hard <커밋해시>

 

3. 원격 저장소 강제 푸시

git push -f origin <브랜치명>  # 주의: 팀 프로젝트에서는 사용 자제

728x90
반응형
LIST

'Git' 카테고리의 다른 글

Git desktop 사용 방법  (0) 2025.03.20
내가 한 작업 upstream에 올리기  (0) 2025.03.20
Git - upstream의 변경사항을 로컬로 merge  (0) 2025.03.20
Git - merge 개념  (0) 2025.03.20
origin/upstream  (0) 2025.03.20